在java程序中,除了普遍的八大基本类型,还有着一个集合类,集合类的家族成员十分丰富,本篇文章我们就来了解下它们。
Collection
在Java里,每个实现了Collection接口的类都必须提供两套标准的构造函数,一个是无参,用于创建一个空的Collection,一个是带有Collection参数的有参构造函数,用于创建一个新的Collection,这个新的Collection与传入进来的Collection具备相同的元素。
实际的说,Collection接口是是java中最基本的集合接口,它不会提供直接的实现,Java SDK提供的类像是list和set等都是继承自Collection的“子接口”。
Collection更多的像是一种规则,它所包含的元素都必须遵循一条或者多条规则。像有些允许重复而有些则不能重复、有些必须要按照顺序插入而有些则是散列,有些支持排序但是有些则不支持。
List
List接口是Collection的直接接口。List代表的是一个有序的Collection,即它用某种特定的插入顺序来维护元素顺序。 用户可以对列表中每个元素的插入位置进行精确地控制,同时还可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。实现List接口的集合主要有:ArrayList、LinkedList、Vector、Stack。
Set
一种不包括重复元素的Collection就是set。它维持着自己的内部排序,所以随机访问没有任何意义。与List一样,它同样允许null的存在但是仅有一个。由于Set接口的特殊性,所有传入Set集合中的元素都必须不同,同时要注意任何可变对象,如果在对集合中元素进行操作时,导致e1.equals(e2)==true,则必定会产生某些问题。实现了Set接口的集合有:EnumSet、HashSet、TreeSet。
Map
Map是一种与List、Set接口不同的接口,它是由一系列键值对组成的集合,提供了key到Value的映射。同时它也没有继承Collection。在Map中它保证了key与value之间的一一对应关系。也就是说一个key对应一个value,所以它不能存在相同的key值,当然value值可以相同。 实现map的有:HashMap、TreeMap、HashTable、Properties、EnumMap。
Queue
Queue我们一般叫他队列,它主要分为两大类,一类是阻塞式队列,队列满了以后再插入元素则会抛出异常,主要包括ArrayBlockQueue、PriorityBlockingQueue、LinkedBlockingQueue。另一种队列则是双端队列,支持在头、尾两端插入和移除元素,主要包括:ArrayDeque、LinkedBlockingDeque、LinkedList。
集合框架图:
以上就是本篇文章的所有内容,更多java编程常见问题可以多多关注我们了解具体。
推荐阅读: