第八章 Java集合
java集合大致分为:Set、List、Queue、Map;
Set:代表无序,不可重复的集合;
List:代表有序,可以重复的集合;
Map:具有映射关系的集合
Queue:队列集合,栈
数组可以保存基本数据类型,也可以保存对象;集合只可以保存对象。
Set集合:
HashSet:非线程安全;集合值可以是null;无序;通过euqals()和hashCode()方法比较;
LinkedHashSet:非线程安全;通过euqals()和hashCode()方法比较;
TreeSet:非线程安全;实现SortedSet接口;通过compareTo()比较;有序;采用红黑树结构存储数据;支持自然排序和定制排序;
EnumSet:非线程安全;必须指定枚举类型;有序;不允许null;内部以位向量形式存储
List集合:
ArrayList:基于数组;非线程安全;
Vector:基于数组;线程安全;
Queue集合:
先进先出
PriorityQueue:比较标准的队列;按照队列元素大小排序,而不是加入顺序;不允许null;支持自然排序和定制排序;
Deque:双端队列;可以做队列,也可以作为栈;
ArrayDeque:可以做队列,也可以作为栈;
Stack:栈;性能差;线程安全
LinkedList:基于链表;可以做队列,也可以作为栈;插入删除性能出色,遍历随机访问性能较差;
Map集合:
通过euqals()和hashCode()方法比较key
通过euqals()比较key
HashMap:非线程安全;允许null;
LinkedHashMap:
Hashtable:线程安全;不允许null;
Properties:key value只可以字符串类型
TreeMap:实现SortedMap()接口;红黑树结构;根据key排序;支持自然排序和定制排序;重写equals()和compareTo();
EnumMap:所有key必须是枚举类
操作集合的工具类Collections
排序操作:
查找操作:
同步控制:eg: Map map = Collections.synchronizedMap(new HashMap());
设置不可变类: