推荐看这篇文章
java集合入门和深入学习,看这篇就差不多了
一、集合入门
Java中的集合框架可分为Collection
和Map
①Collection
中包含两大体系List
和Set
,
List
中包含ArrayList
、LinkedList
、Vertor
Set
中包含HashSet
、LinkedHashSet
、TreeSet
②Map
中包含HashMap
、LinkedHashMap
、TreeMap
一、Collection
1、List
有序,有索引,可以根据索引进行取值,元素可以重复
①、ArrayList
底层使用数组实现,具有数组的特点,查询速度快,增删速度慢,线程不安全
arrayList.add() // 增加
arrayList.remove() // 删除
arrayList.set() // 修改
arrayList.get() // 查找
arrayList.size() // 大小
②、LinkedList
底层基于链表结构实现,具有链表的特点,查询慢,增删速度快,提供特殊方法,对头尾的元素操作(增删)
线程不安全。
实现队列,栈。
linkedList.add() // 在链表后添加一个元素,返回true或false
linkedList.addFirst() // 在链表头部插入一个元素
linkedList.addLast() // 在链表尾部添加一个元素
linkedList.remove(), removeFirst(), removeLast() // 移除链表中第一个元素、第一个、最后一个
linkedList.get(), getFirst(), getLast()
linkedList.push(), pop(), poll()
③、Vector
已经过时,被ArrayList取代,通过迭代器vector.elements()获取,判断是否有元素和取元素的方法为,hasMoreElements(), nextElement()。
2、Set
存储无序,元素不可以重复
①、HashSet
基于哈希表?
如何保证元素的唯一性?
hashCode和equals方法
②、LinkedHashSet
是基于链表和哈希表共同实现的,所以具有存取有序,元素唯一
③、TreeSet
存取无序,元素唯一,可以进行排序。
TreeSet是基于二叉树的数据结构。
二叉树都懂。
二、Map
map是一个双列集合,其中保存的是键值对,要求键唯一,值可以重复。键存取无序。
①、HashMap
基于哈希表结构实现,所以存储自定义对象作为键时,必须重谢hashCode和equals方法。
②、LinkedHashMap
是基于链表和哈希表结构的所以具有存取有序,键不重复的特性
③、TreeMap
TreeMap底层使用的二叉树,其中存放进去的所有数据都需要排序,要排序,就要求对象具备比较功能。对象所属的类需要实现Comparable接口。或者给TreeMap集合传递一个Comparator接口对象。