Java Collection
2022-04-04 09:30:59 0 举报
List、Set、Queue、Map……
作者其他创作
大纲/内容
Collection<E>:容器
#hasNext():boolean#next():Object#remove():void#forEachRemaining:void
void add(Object e)Object element()boolean offer(Object e)
EnumSet
#clear():boolean#size():int#isEmpty():boolean#contains():boolean#containsAll():boolean#iterator():Iterator
Deque代表双端队列,可以同时从两端添加、删除元素,因此Deque的实现类既可以当队列使用,也可当栈使用。
Comparator
TreeSet集合判断两个对象是否相等的唯一标准是两个对象通过compareTo(Object obj)方法比较是否返回0元素有两种排序方法
LinkedHashSet
LinkedHashSet使用链表维护元素的插入顺序
HashSet集合采用hash算法决定元素的存储位置
ArrayList、ArrayDeque内部以数组的形式来保存集合中的元素,因此随机访问集合元素时有较好的性能;而LinkedList内部以链表的形式来保存集合中的元素,因此随机访问集合元素时性能较差,但在插入、删除元素时性能非常出色。
LinkedList
组合
TreeSet采用红黑书存储集合元素,可以确保集合元素处于排序状态
Object peek()Object poll()Object remove()
PriorityQueue保存队列元素的顺序并不是按加入队列的顺序,而是按队列元素的大小进行重新排序。本质是小顶堆。不允许插入null元素。元素有两种排序方法
Stack
ArrayList和Vector区别:ArrayList线程不安全的,Vector集合是线程安全的;Vector性能比ArrayList的性能要低Vector是一个古老的集合,不建议使用。
Iterator
#add():boolean#addAll():boolean#remove():boolean#removeAll():boolean#removeIf():boolean#retainAll():boolean
Vector
ArrayDeque
Object peek()Object pop()void push(Object item)
Deque
依赖
EnumSet是一个专为枚举类设计的集合类,EnumSet中的所有元素都必须是指定枚举类型的枚举值。创建EnumSet时必须显示或隐式指定它对应的枚举类。EnumSet在内部以位向量的形式存储,实现形式非常紧凑、高效,占内存很小,运行效率很好,批量操作的执行速度非常快。EnumSet的集合元素是有序的,根据枚举值在枚举类中的定义顺序来决定集合元素的顺序。EnumSet不允许加入null元素。EnumSet类没有暴露任何构造器来创建该类的实例,程序应该通过它提供的static方法来创建EnumSet对象。
实现
boolean hasPrevious()Object previous()void add()
ArrayList
继承
ListIterator
HashSet
排序方法
HashSet集合判断两个元素相等的标准是两个对象通过equals()方法比较相等,并且两个对象的hashCode()方法返回值也相等。
Queue
Iterable<T>:可迭代
#iterator():Iterator<T>#forEach():void#spliterator():Spliterator<T>
List
这三个实现类都是线程不安全的
Comparable
int compareTo(Object obj)
对于所有内部基于数组的集合,如ArrayList、ArrayDeque等,使用随机访问的性能比使用Iterator迭代访问的性能要好,因为随机访问会被映射成对数组元素的访问。
Stack继承了Vector,是一个古老的集合类,线程安全,性能较差,不建议使用Stack类。如果需要使用“栈”数据结构,可考虑使用LinkedList,因为ListedList实现了Deque接口(双端队列)。
#toArray():Object[]#toArray():T[]#stream():Stream<E>#parallelStream():Stream<E>#spliterator():Spliterator<E>
PriorityQueue
SortedSet
Set
TreeSet
关联
聚合
List存储有序可重复元素List判断两个对象相等只要通过equals方法比较返回true即可
set存储无序不相同元素
收藏
0 条评论
回复 删除
下一页