集合类可以看作容器,用来存储对象的引用,其长度是可以改变的,不同的集合类有不同的存储对象。常用的集合类有Map类,List类和Set类。其中List类和Set类继承了Collection接口,各接口还有不同的实现类。
关系图如下:
①Collection接口
该接口为根接口,构成该接口的单位称为元素
该接口提供了一些添加元素,删除元素,管理数据的方法。如下:
遍历集合由迭代器(Iterator)实现,iterator(方法)可以返回此Collection进行迭代的迭代器。
遍历集合实例:
②List类
包含List接口和List接口的所有实现类,List接口包含Collection接口的所有方法,还有两个重要方法:
1.get(int index):获取指定位置的元素
2.set(int index,Object obj):将集合中指定元素
修改为指定对象。
List接口的两个实现类ArrayList类和LinkedList类。
1.ArrayList类实现了可变数组,允许包含所有元素,包括null. 可根据索引位置快速对集合进行访问。但是向指定位置插入或者删除对象较慢。
2.LinkedList类采用链表结构保存 对象,便于插入或删除对象。
通过ArrayList类和LinkedList类实例化List类
实例:
③Set类
该类对象不按特定方式排序,不包含重复对象,Set集合中有Collection接口的全部方法,Set接口,Set的实现类。
Set接口常见实现类有HashSet类和TreeSet类
1.HashSet类由哈西表支持,不保证Set集合的迭代顺序,允许存在null元素。
2.TreeSet类不仅实现Set接口,还实现java.util.SortedSet接口,因此在遍历集合时是顺序遍历递增排序。
TreeSet类增加的方法:
实例:使用TreeSet类实现升序排列
tips:
④Map集合
无Collection接口,提供的是key到value的映射,不能有相同的key,每次key只能一个value。Map集合包Map接口和Map接口的所有实现类。
1.Map接口
提供了将key映射到值的对象,除常用集合方法外,还有以下方法:
2.Map的实现类
Map的实现类有HashMap类和TreeMap类
(i)HashMap类基于哈希表的Map接口实现,允许使用null值与null键,不保证映射顺序。
(ii)TreeMap类不仅实现了Map接口还实现了java.util.SortedMap接口,因此映射具有一定的顺序,不允许键对象为null。
建议使用HashMap类创建对象,因为由该类实现的Map集合添加和删除映射关系效率高,需要顺序输出时,可再创建一个完全相同的TreeMap类实例。
实例:输出Map集合中的书号和书名。