集合大家族(六)

    java中的集合类实在是太丰富了,有常用的ArrayList、hashMap,也有不常用的Stack,Queue,有线程安全的Vector、HashTable,也有线程不安全的LinkedList,TreeMap,有阻塞式的ArrayBlockingQueue,也有非阻塞样式的PriorityQueue等,整个集合家族非常庞大,可以划分为一下几类。

(1)List

实现List 接口的集合主要有:ArraList、LinkedList、Vector、Stack,其中ArrayList是一个动态数组,LinkedList是一个双向链表,Vector是一个线程安全 动态数组,Stack是一个对象栈,遵循先进后出的原则。

(2)Set

Set 是不包含重复元素的集合,主要的实现类是:EnumSet、HashSet、TreeSet,其中EnumSet是枚举类型专用Set,所有元素都是枚举类型;HashSet额是以哈希吗决定其元素位置的Set,其原理与HashMap相似,它提供快速插入和查找方法;TreeSet是一个自动排序的Set,它实现SortedSet接口。

(3)Map

Map是一个大家族,分为排序Map和非排序Map,排序Map主要是TreeMap类,它根据Key值进行自动排序;非排序Map主要包括:hashMap,hashTable、Properties、EnumMap等,其中Properties是HashTable的子类,它的用途主要是从Property文件中加载数据,并提供方便的读写操作;EnumMap要求Key必须是一个枚举类型。

(4)Queue

分为阻塞式和非阻塞式,最常用的的是PriorityQueue类;

(5)数组

数组能够容纳基本类型,集合不能,集合低层是数组实现。

(6)工具类

数组的工具类是java.util.Arrays和java.lang.refect.Array,集合工具类是Java.util.Collections

(7)扩展类

扩展Apache的commons-collections扩展包,可也以是google-collections扩展包。

 

你可能感兴趣的:(集合大家族(六))