java集合类简单总结对比

说到java集合类,首先我们要有一个整体的概念。两个绕不过去的大哥,CollectionMap
让我们先来认识一下Collection家族成员。
在这里插入图片描述
从图中我们从左往右,从上往下,挨个过一下这些类。
Collection接口:
java集合的顶级父类,里面定义了集合常用的方法。

boolean isEmpty();

boolean contains(Object var1);

Iterator<E> iterator();

Object[] toArray();

<T> T[] toArray(T[] var1);

boolean add(E var1);

boolean remove(Object var1);

List接口:
继承了collection接口;存入list集合中的元素,会保存存入的顺序。

set接口:
继承了collection接口,存入set集合中的元素,不能有重复的。

ArrayList类(可实例化):
基于数组实现,所以对于查找操作效率比较高;

LinkedList(可实例化类):
基于双向链表实现,对于插入和删除操作效率比较高;

priorityQueue:
一个基于优先级的无序队列,存储的对象要有可比性,是线程不安全的。

ArrayQueue:
一个循环队列,内部基于数组实现的,无法自动扩容,需要手动调用resize
()方法;

Vector:
类比ArrayList,只不过是方法加了锁,线程安全。

HashSet:
底层基于HashMap实现,没有重复的元素,可以为null,线程不安全;

TreeSet:
有序,不可重复,红黑树

LinkedHashSet:
在hashset的基础上,保留了插入顺序。

排序的集合,存储的数据都需要实现比较功能。

在这里插入图片描述
Map接口
是一种双列集合,以键值对的形式形式存储数据。

HashMap:
线程不安全、可以存放null值,哈希链表法;

HashTable:
与HashMap类似,线程安全

TreeMap:
基于红黑树实现,有序

LinkedHahsMap:
与HashMap类似,有序进去,有序出来;

ConcurrentHashMap:
分段锁,线程安全

发布了16 篇原创文章 · 获赞 1 · 访问量 277

猜你喜欢

转载自blog.csdn.net/lovesman/article/details/103378221