集合类
官方说法将它看成一个容器,集合中的各个对象,很容易将其从集合中取出来,也很容易将其存放到集合中,还可以将其按照一定的顺序进行摆放
常用的集合类有List集合,Set集合和Map集合,其中List集合和Set集合继承了Collection接口,各接口提供了不同的实现类
下图是集合类Collection接口
Collection接口时层次结构中的接口,构成Collection的单位称为元素,它不能直接使用,但是提供了方法,例如添加元素,删除元素,管理元素。因为List接口和Set接口都继承了Collection接口,所以这些方法,List集合和Set集合都是通用的
下图是Collection接口的常用方法:
例题代码如下
结果如下
List接口的常用实现类有ArrayList类与LinkedList类
ArrayList类:实现了可变的数组,允许保存所有元素,包括null,并可根据索引位置对集合进行快速的随机访问。缺点就是向指定的u怂恿位置插入对象或删除对象的速度较慢。
LinkedList类:采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象。需要向集合中插入,删除对象时,使用LinkedList类实现的List集合的效率更高,但对于随机访问合集中的对象,使用LiknedList类实现List集合的效率较低。
List<E> list = new ArrayList<>();
List<E> list2 = new LinkedList<>();
例题代码如下
结果如下
Set集合
Set接口常用的实现类有HshSet类与TreeSet类
HashSet类实现Set接口,由哈希表支持,他不保证Set集合的迭代顺序,特别是它不保证顺序恒久不变。此类允许使用null元素
Map接口的实现类
常用的接口有HashMap类和TreeMap类。
HashMap类:
是基于哈希表的Map接口,此实现提供所有可选的映射操作,并允许使用null值和null键,但必须保证键的唯一性。
TreeMap类:
不仅实现了Map接口,还实现了java,util.SortedMap接口,因此集合中的映射关系具有一定的顺序。但在添加,删除和定位映射关系时,TreeMap类比HashMap类性能稍差。
结果如下