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():集合转数组 |
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() |
Collection.jpg (94.59 KB, 下载次数: 2)
集合框架
Map集合.png (153.8 KB, 下载次数: 4)
map
AllenIverson 发表于 2015-7-24 15:38
1. Collection
2. Map
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |