Collection
2016-04-27 17:22:59 21 举报
java容器类1/2
作者其他创作
大纲/内容
Collection
boolean hasNext()Object next()void remove()
void add(Object e)Object element()boolean offer(Object e)
EnumSet
固定长度List:Arrays提供的asList(Object... a)方法返回的List集合是Arrays的内部类ArrayList的实例。长度固定,只能遍历访问元素,不可增加、删除元素。
+Iterator iterator()+boolean remove(Object o)-boolean removeAll(Collection c)-boolean retainAll(Collection c)+int size()+Object[] toArray()
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
集合里保存的是对象的引用
+boolean add(Object o)-boolean addAll(Collection c)+void clear()+boolean contains(Object o)-boolean containsAll(Collection c)+boolean isEmpty()
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
List
这三个实现类都是线程不安全的
Comparable
int compareTo(Object obj)
对于所有内部基于数组的集合,如ArrayList、ArrayDeque等,使用随机访问的性能比使用Iterator迭代访问的性能要好,因为随机访问会被映射成对数组元素的访问。
Stack继承了Vector,是一个古老的集合类,线程安全,性能较差,不建议使用Stack类。如果需要使用“栈”数据结构,可考虑使用LinkedList,因为ListedList实现了Deque接口(双端队列)。
PriorityQueue
SortedSet
Set
TreeSet
List存储有序可重复元素List判断两个对象相等只要通过equals方法比较返回true即可
set存储无序不相同元素
收藏
收藏
0 条评论
下一页