- 什么是集合?
在Java.util包中提供了一些集合类,所谓的集合就是用来存对象的引用的一个可变容器。
我们常用的集合用List集合、Map集合、Set集合,其中List集合与Set集合继承了Collection接口。
1 | Collection接口的一些基本功能: |
List集合
List集合各个元素的顺序就是插入元素顺序,List集合允许元素重复。
<1> List接口
List接口在包含了collection中所有方法外,还定义了两个方法
get(int index) //获得指定索引位置的元素。
set(int index,Object o) //将索引位置的对象修改为指定对象。<2> ArrayList 与 LinkedList的区别
- ArrayList 类是实现了可变的数组,允许存放所有元素包括null,可以对集合进行快速的随机访问,缺点插入或者删除对象速度慢
- LinkedList 类采用的事链表结构保存对象,便于插入和删除对象,缺点随机访问效率低。
Set集合
因为Set集合内的元素不按特定方式排序,所以Set集合不能包含重复对象。
<1> HashSet集合
因为Set集合不按特定顺序,所以不能保证迭代顺序,但是允许使用null元素。
<2> TreeSet集合
TreeSet接口不仅实现了Set接口,还实现了JAVA.until.SortedSet接口,所以TreeSet集合在遍历集合的时候按自然顺序递增排序,也可以通过比较容器对Set集合对象进行排序。
1
2
3
4
5
6
7Tree类新增方法:
first() //返回Set中第一个(最低)元素
last() //放回set中最后一个(最高)元素
comparator() //放回对此Set中元素进行排序的比较器,如果使用的是自然顺序,那么返回值为null
headSet(E toElement) //返回一个新的Set集合新集合是不包含本身之前的所有对象。
subSet(E fromElment,E fromElment) //返回一个新的Set集合包含前一个不包含后一个直接的所有对象
tailSet(E fromElment) // 返回一个新的Set包括自己之后的所有对象。Map集合
Map集合没有继承Collection接口,但是提供了key到value的映射,Map中不能包含相同的key,每个key只能映射一个value。<1> Map接口
map接口的一些基本方法:
1
2
3
4
5
6put(K key ,V value) //像集合添加指定的key与value映射关系
containsKey(Object key) //如果此映射是否包含key
containsValue(Object Value) //如果此映射对象存在就返回true
get(Object key) //如果存在指定key对象就放回对象对应的值,否则返回null
keySet() //返回所有的key对象形成Set集合
Values() //返回该集合中所有值的对象形成Collection对象<2> HashMap集合
HashMap实现map集合添加和删除映射关系效率更高,因为基于哈希表,HashMap可以通过哈希码对其内部映射进行快速查找,允许使用null键和null值(必须保持键的唯一性).
<3> TreeMap集合
因为实现了java.util.SortedMap接口,所以映射关系具有一定的顺序性,所以添加、删除和定位映射性能稍差,因为具有顺序性,所以不允许键对象为null
小技巧:可以通过HashMap类创建Map集合,当需要顺序输出是,在创建一个完成相同映射关系的TreeMap类实例。