Collection、Set、List、Map都是接口:
List是一个有序的可重复的Collection集合,可以通过索引来获取list中的元素.list.get(0);
ArrayList:底层的数据结构使用的是数组的结构,特点:(查询和更改)速度快,但是(插入和删除)很慢,线程不同步。
LinkedList:底层采用的是链表的数据结构,特点:(查询和修改)速度慢,插入和删除速度快,线程不同步。
Vector:底层采用的是数组的结构,默认长度是10,超过之后100%的延长,比较浪费空间,他是线程同步的,但需要自己加锁,所以一般也不用他。
Set:是一个无序的不可以重复的Collection集合.
HashSet:List基本上都是以Array为基础的,但是Set则是在HashMap的基础上实现的,以下是HashSet的add方法:
public boolean add(Object obj) {
return map.put(obj, PRESENT) == null;
}
正因为这样,HashSet才不允许重复。
LinkedHashSet:HashSet的一个子类,一个链表.
---------------------------------------------------------
Map:map是一个键值对进行关联的容器,map的key不能重复.
List是一个有序的可重复的Collection集合,可以通过索引来获取list中的元素.list.get(0);
ArrayList:底层的数据结构使用的是数组的结构,特点:(查询和更改)速度快,但是(插入和删除)很慢,线程不同步。
LinkedList:底层采用的是链表的数据结构,特点:(查询和修改)速度慢,插入和删除速度快,线程不同步。
Vector:底层采用的是数组的结构,默认长度是10,超过之后100%的延长,比较浪费空间,他是线程同步的,但需要自己加锁,所以一般也不用他。
Set:是一个无序的不可以重复的Collection集合.
HashSet:List基本上都是以Array为基础的,但是Set则是在HashMap的基础上实现的,以下是HashSet的add方法:
public boolean add(Object obj) {
return map.put(obj, PRESENT) == null;
}
正因为这样,HashSet才不允许重复。
LinkedHashSet:HashSet的一个子类,一个链表.
---------------------------------------------------------
Map:map是一个键值对进行关联的容器,map的key不能重复.