Java 集合框架提供了一组用于存储和操作对象的类和接口,主要包括 List、Set 和 Map。下面是对 Java 集合的主要类型和它们的特点的介绍。
- 集合的主要接口
Collection:集合的根接口,表示一组对象。
List:有序集合,允许重复元素。常用实现:
ArrayList:基于动态数组,支持快速随机访问,但在插入和删除元素时性能较低。
LinkedList:基于双向链表,适合频繁插入和删除操作。
Set:不允许重复元素的集合。常用实现:
HashSet:基于哈希表实现,提供常数时间复杂度的基本操作(如添加、删除和包含)。 LinkedHashSet:继承自
HashSet,保持插入顺序。 TreeSet:基于红黑树,提供排序功能,元素按自然顺序或指定比较器排序。
Map:存储键值对,不允许重复键。常用实现:HashMap:基于哈希表实现,提供常数时间复杂度的基本操作,允许 null 值。 LinkedHashMap:保持插入顺序,性能略低于
HashMap。 TreeMap:基于红黑树,提供排序功能,键按自然顺序或指定比较器排序。
- 常用操作
2.1. List 示例
import java.util.ArrayList;
import java.util.List;public class ListExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Cherry");System.out.println("List: " + list);System.out.println("Element at index 1: " + list.get(1));list.remove("Banana");System.out.println("After removal: " + list);}
}
2.2. Set 示例
import java.util.HashSet;
import java.util.Set;public class SetExample {public static void main(String[] args) {Set<String> set = new HashSet<>();set.add("Apple");set.add("Banana");set.add("Apple"); // 重复元素不会添加System.out.println("Set: " + set);}
}
2.3. Map 示例
import java.util.HashMap;
import java.util.Map;public class MapExample {public static void main(String[] args) {Map<String, Integer> map = new HashMap<>();map.put("Apple", 1);map.put("Banana", 2);map.put("Cherry", 3);System.out.println("Map: " + map);System.out.println("Value for 'Banana': " + map.get("Banana"));map.remove("Banana");System.out.println("After removal: " + map);}
}
- 集合的特性
动态大小:ArrayList 和 LinkedList 可以根据需要自动扩展和收缩。
有序性:List 和 LinkedHashSet 保持插入顺序,TreeSet 和 TreeMap 则提供排序。
高效性:HashSet 和 HashMap 提供常数时间复杂度的基本操作。 - 常见方法
List:
add(E e):添加元素
remove(Object o):移除元素
get(int index):获取指定索引的元素
size():获取元素数量
Set:
add(E e):添加元素
remove(Object o):移除元素
contains(Object o):检查是否包含元素
size():获取元素数量
Map:
put(K key, V value):添加键值对
get(Object key):获取指定键的值
remove(Object key):移除指定键的元素
keySet():获取所有键的集合
以上希望对你有所帮助,记得一键三连哦!