一、集合的架构
Collection(I):单列集合的根接口
List:有序的(可以使用索引值操作元素)元素可以重复
ArrayList(C):底层实现是数组 增删慢 查询块
LinkedList(C):底层是链表 增删快 随机查询慢
Set(I):无序的(不可以根据索引值操作元素) 元素不可以重复
HashSet(C):不能保证存入的顺序和取出的顺序一致
LinkedHashSet(C):有序的 可以保证存入的顺序和取出的顺序一致
TreeSet(C):有序的 可以对元素进行排序
Map(I):双列集合的根接口
HashMap(C):key-value key值不能重复 可以为null 可以使用key值获取value值 一个键值对对应一个entry
LinkedHashMap:可以保证存入和取出的顺序
TreeMap(C):可以对key值排序
Iterator 迭代器
ListIterator List迭代器 只能操作list
特有的方法:hasPrevious() previous() 只有在先调用hasNext() next()之后才有效 add()方法 在迭代期间可以调用
二、Collection方法总览
add(); 增加元素
renmove();删除元素
clear():清空元素
contains() 包含元素
size() 集合长度
isEmpty() 是否为空
addAll() 将有一个集合全部增加到另外一个集合
removeAll()将一个集合在另外一个集合中全部移除
containsAll()判断一个集合是否包含在另外一个集合
rettainAll()获取两个集合的交集
三、List方法总览
List:
add(int index,E e); 增加元素
get(int index);获取index上的元素
remove(int index);移除index上的元素
set(int index,E e);设置index上的元素
listIterator: ListIterator: add();
LinkedList 独有方法
getFirst 获取首元素
getLast 获取尾元素
removeFirst 移除首元素
removeLast 移除尾元素
addFirst 增加首元素
addLast 增加尾元素
四、Map方法总览
V put(K key,V value) 存数据
V remove(Object key) 移除数据
void clear() 清空集合
boolean containsKey(Object key) 判断包含key
boolean containsValue(Object value) 判断包含value
boolean isEmpty() 判断是否为空
int size() 集合的长高度
V get(Object key) 获取key
Set<K> keySet() 获取key的集合
Collection<V> values() 获取value的集合
Set<Map.Entry<K,V>> entrySet() 获取键值对集合
五、TreeMap和TreeSet总结
TreeSet:
- 可以对集合中的元素进行自然排序
- TreeSet中的元素必须实现Comparable接口 否则会抛出异常
- TreeSet可以通过构造方法传入一个Comparator比较器来定义新的比较规则
TreeMap: - TreeMap可以对键Key进行自然排序
- TreeMap中实现Compare/ComparaTo返回值为0时,会默认是同一个元素,键Key不变,value值被替换
- TreeMap存放元素时键不要为null,会抛出异常
六、hashSet和TreeSet如何保证元素不重复的
hashSet: hasCode和equals
TreeSet: Compare/ComapraTo 如果返回值是0则会被认为是同一个元素 后边的值不会存入TreeSet中。
网友评论