Collection接口通常不能直接使用,由于List接口和Set接口都是继承了Collection接口,因此Collection接口的方法对于List集合和Set集合都是通用的
Collection接口常用的方法:
add(E e) 将指定的对象添加到该集合当中
remove(Object o)将指定的对象从该集合中移除
isEmpty()返回Boolean值,用于判断当前集合是否为空
iterator()返回一个迭代器,用于遍历集合中的对象
size()返回int类型的值,获取该集合中元素的个数
List集合 = List接口 + List接口的实现类
List集合的特点:
元素允许重复
List接口特有的方法:
get(int index) 获得指定索引位置的元素
set(int index,Object obj) 将集合中指定索引位置的对象修改为指定对象
List接口的实现类:
List<E> list = new ArrayList<>();
List<E>list = new LinkedList<>();
ArrayList类的特点:
允许保存所有元素,包括null
可以进行随机访问
缺点是插入对象或者删除对象的速度比较慢
LinkedList类的特点:
便于向集合中插入和删除对象
无法进行随机访问
Set集合 = Set接口 + Set接口的实现类
Set集合的特点:
集合的内容可以不是同一类型,但是Set集合中不能包含重复对象。
Set接口的实现类:
Set<E> set = new TreeSet<>();
Set<E> set = new HashSet<>();
TreeSet类的特点:
在遍历时按照自然递增排序
如果要定制排序的话泛型要继承Comparable()重写compareTo()方法
不能添加null值
HashSet类的特点:
允许使用null值
不保证Set集合的迭代顺序,使用时应该重写hashCode()和equals()方法(参与哈希值运算的建议不要改)
Map集合 = Map接口 + Map接口的实现类
Map集合的特点
Map接口没有继承Collec接口,提供的是key到value的映射,Map集合中不能包含相同的key,每个key只能映射一个value
Map接口特有的方法:
put(K key,V value) 向集合中添加指定的key与value的映射关系
containsKey(Object key) 如果此映射包含指定key的映射关系,返回true
containsValue(Object value) 如果此映射将一个或多个key映射到指定值,返回true
get(Object key) 如果存在指定的key对象,则返回该对象对应的值,否则返回null
keySet() 返回该集合中的所有key对象形成的Set集合
values() 返回该集合中所有值对象形成的Collection集合
Map接口的实现类:
Map<E,E> map = new HashMap<>();
Map<E,E> map = new TreeMap<>();
HashMap类的特点:
允许使用null值和null键,散列码键值对速度快
TreeMap类的特点:
不允许使用null,树状键值对是有序的