版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012442381/article/details/80028112
Java集合的作用不必多说大家都知道,下面通过思维导图梳理他们的关系
JAVA 集合分类
JAVA集合主要分为两大接口,四大体系
JAVA集合的比较
List实现类比较
(1) ArrayList 与LinkedList
ArrayList : 数组类型的集合,查询(使用get与set方法)快,增删慢(需要移动数据)
LinkedList: 链表类型的集合,查询(使用get与set方法)慢,增删快(查询需要移动指针)
(2) ArrayList 与Vector
Vector 与ArrayList基本相似,唯一区别是Vector 是线程同步的即线程安全Set实现类比较
HashSet 与TreeSet
HashSet:查速度最快的集合因为底层是hashcode实现
TreeSet :生成一个排序的集合,底层是TreeMap实现,按自然排序或者提供的comparator排序- Map实现类比较
HashMap 与hashtable
HashMap: 线程不安全,允许null值null键
Hashtable: 线程安全,不允许null值null键
JAVA集合工具类
Collections 工具类
该类提供了很多操作集合的静态方法,特别是强同步synchronized 可以保证线程安全,只读强控等Arrays 工具类
该类是操作数组的工具类,对集合只要知道这个
// 源代码
@SafeVarargs
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
// 测试
//特别强调基本类型一定要转换为原始类
Integer [] arr = {111, 222};
List list = Arrays.asList(arr);
// 或者
List list2 = Arrays.asList({111, 222});
// 且list集合定长不可以删和增加操作
补充点
集合的整体体类图(摘自博客)