java中三大集合特点
List集合
有序可重复
1.ArrayList:
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
2.LinkedList:
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
get(int)方法只有ArrayList是高效地在LinkList索引越大访问速度越慢所以要用迭代器访问。Iterate有两个方法 boolean hashNext() 判断是否有下一个元素
E Next() 返回下一个元素 ,代码如下
Set集合
无序,不可重复 主要有以下几个方法
add() 添加元素
remove() 删除元素
boolean contains() 是否包含元素
1.HashSet:
无序唯一,输出的既不是添加的顺序也不是String排序的顺序
常用的set实现类
底层数据结构是哈希表。
哈希表依赖两个方法:hashCode()和equals()
2.LinkedHashSet:
底层数据结构由链表和哈希表组成。
由链表保证元素有序。
由哈希表保证元素唯一。
3.TreeSet:
TreeSet是有序的因为它实现了SortedSet接口
内部使用TreeMap作为存储结构,所以在遍历时,输出元素是经过排序的,按照元素的不同比较方式进行排序,所以添加的元素必须实现comparable接口,如果没有实现接口则必须传入一个comparator对象
Map集合
双列集合
Map <k,v>是一种键值映射表,用put()方法放入键值对,
get(key)获取key对应的value,如果key不存在返回null.
1.HashMap:
在一个map中,key不能重复,value是可以重复的
对map来说,要遍历key可以使用for each 循环遍历map实例的keySe()方法返回的set集合,它包含不重复的key集合,代码如下:
同时遍历key 和value 使用for each 对象的entrySet()集合,它包含每一个映射 ,代码如下:
2.LinkedHashMap:
底层数据结构由链表和哈希表组成。
由链表保证元素有序。
由哈希表保证元素唯一。
3.TreeMap:
底层数据结构是红黑树。(是一种自平衡的二叉树