Java集合框架提供了一组接口和类,用于存储和操作对象集合。它包括常用的数据结构,如列表、集合、映射等,以及对应的实现类。
主要接口和类:
List(列表): 允许重复元素,按照插入顺序存储。常用实现类有ArrayList(查询快、增删慢)和LinkedList(增删快、查询慢)。
ArrayList vs. LinkedList: ArrayList适用于随机访问元素,LinkedList适用于频繁插入和删除操作。
Set(集合): 不允许重复元素,不保证顺序。常用实现类有HashSet(插入和查询速度快,不保证顺序)和TreeSet。
HashSet vs. TreeSet: HashSet基于哈希表实现,插入和查询速度快,不保证顺序;TreeSet基于红黑树实现,元素有序,但插入和查询速度相对较慢。
Map(映射): 键值对的集合,每个键对应一个值。常用实现类有HashMap和TreeMap。
HashMap vs. TreeMap: HashMap基于哈希表实现,插入和查询速度快,不保证顺序;TreeMap基于红黑树实现,键有序。
Queue(队列): 先进先出(FIFO)的数据结构。常用实现类有LinkedList和ArrayDeque。
Deque(双端队列): 允许在两端进行插入和删除操作的队列。常用实现类有ArrayDeque。
常用操作:
-
添加元素: 使用add()方法向集合中添加元素。
-
删除元素: 使用remove()方法删除指定元素。
-
遍历集合: 使用for-each循环或迭代器(Iterator)遍历集合。
-
查找元素: 使用contains()方法检查集合中是否包含指定元素。
技巧:
1.使用泛型: 始终使用泛型来指定集合的元素类型,这样可以在编译时捕获类型错误,并提高代码的类型安全性。
List<String> list = new ArrayList<>();
2.遍历集合: 使用for-each循环或迭代器来遍历集合,简化代码并提高可读性。
List<String> list = new ArrayList<>();
for (String item : list) {
System.out.println(item);
}
3.初始化集合: 在创建集合时尽量指定初始容量,以避免动态扩容带来的性能损耗。
List<String> list = new ArrayList<>(10);
4.使用集合工具类: 使用Collections类中的静态方法进行集合操作,如排序、查找、替换等。
List<String> list = new ArrayList<>();
Collections.sort(list);
5.避免不必要的装箱拆箱: 在使用基本数据类型时,尽量使用对应的集合类,避免自动装箱拆箱操作。
List<Integer> list = new ArrayList<>(); // 考虑使用int[]
6.注意集合元素比较: 重写对象的equals()和hashCode()方法,以确保集合中的对象比较正确。
@Override
public boolean equals(Object obj) {
// 自定义实现
}
@Override
public int hashCode() {
// 自定义实现
}
看名字:后缀名就是该集合所属的体系。
List有角标有序,可重复。Set元素唯一
前缀名就是该集合的数据结构。
看到Array就想到数组,就要想到查询快,有角标。
看到Linked就要想到链表就要想到增删快,add get remove+first last的方法。
看到Hash就要想到哈希表,就要想到唯一性,元素需要想到覆盖hashCode方法和equals方法。
看到tree就要想到二叉树,就要想到排序,就要想到两个接口Comparable,Comparator。
标签:Java,List,ArrayList,元素,list,new,集合,类及 From: https://blog.csdn.net/weixin_54136520/article/details/137473090