Collection |
| List | Set |
元素
| 有序、可重复
| 无序、唯一
|
实现类
| ArrayList:
底层数据结构是数组,查询快,增删慢,非线程安全,效率高
Vector:
底层数据结构是数组,查询快,增删慢,线程安全,效率低
LinkedList:
底层数据结构是链表,查询慢,增删快,非线程安全,效率高
| HashSet:
不保证set的迭代顺序,特别是不保证该顺序恒久不变;底层数据结构是哈希表,哈希表依赖于哈希值存储;添加功能依赖于hashCode()和equals()
LinkedHashSet:
底层是哈希表和链表,有序、唯一
TreeSet:红黑树结构,自然排序(实现Comparable接口,重写compareTo()方法,元素具备比较性),比较器排序(构造方法接收一个comparator接口的子类对象,重写compare()方法,集合具备比较性)
|
添加功能
| void add(index,element)
void addAll(index,collection)
LinkedList特有功能:
addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast()
| add()
addAll():添加一个集合的元素
|
删除功能
| Object remove(index)
removeAll()
clear()
| remove()
removeAll()
clear()
|
修改功能
| Object set(index,element)
|
|
获取功能
| int size()
Object get(index)
int indexOf(object)
int lastIndexOf(object)
List subList(from,to)
| int size()
|
迭代器
| Iterator
ListIterator(逆序遍历)
| Iterator iterator()
hasNext()、next()
|
判断功能
| boolean contains()
boolean containsAll()
boolean isEmpty()
| boolean contains()
boolean containsAll()
boolean isEmpty()
|
其他功能
| retainAll():取交集
subList():截取
toArray():集合转数组
| retainAll():取交集
toArray():集合转数组
|
2. Map Map:键唯一,值可重复 |
| HashMap、LinkedHashMap(键有序)
| TreeMap |
常见方法
| 1. 添加功能:put(key , value) 有添加和替换功能 2. 删除功能:clear( )、remove(key) 3. 判断功能:containsKey(key)、containsValue(value)、isEmpty( ) 4. 获取功能:get(key)、int size()、Set<Map.Entry<k,v>> entry() Set<k> keySet()、Collection<v> values() 5. 长度功能:int size() |
Collections工具类
| 1. 二分查找:binarySearch(list , key) 2. 反转:reverse( list) 排序sort(list) 最大值max() 3. swap( list, int i, int j) 随机置换shuffle(list) |
Arrays工具类
| 1. List asList( ):将数组转成集合,可变参,仅支持set( ) 2. binarySearch( ) 3. equals( ) 4. sort( ) 5. toString( ) |
内部结构
| HashMap:哈希表,允许null值和null键;LinkedHashMap:哈希表和链表;Hashtable线程安全
| 红黑树(平衡二叉树)保证键的唯一性和排序
|
遍历集合
| 1. 根据键找值:Set<k> keySet()和get(key)结合 2. 根据键值对对象:Set<Map.Entry<k,v>> entry()、getKey()、getValue() |