Collection集合
Collection
特点:所有集合的顶级接口
list(有序,有下标,数据可以重复)
ArraayList(查询)<数组>jdk1.2
LinkedList(增删)<链表>jdk1.2
Vector古老的ArrayList<数组>jdk1.0
有序,指的的是存入顺序和取出顺序一致
list的方法
set(int index , <e> e)给指定位置给值
get(int index)获取指定位置的值
add(int index, object o)指定位置增加元素
addAll(int index ,Collection c)指定位置增加集合
remove(int index)指定位置删除元素
subList(int startIndex, int endIndex)截取集合
Set(无序无下标,元素不可重复)
方法:
方法都是来自Collection,自身没有方法
HashSet<数组+二叉树>
数据按照对应的hashCode码值排序
1.8以前:<数组+链表>
1.8以后:<数组+二叉树>
存储原理;
1.存储对象是,先获取对象的hashCode值,和其他进行比较,如果没有重复,直接存储
2.如果有重复,使用equal方法比较对象如果不相同,直接存储
3.如果相同,将不在存储.
linkedHashSet
存储数据的存入顺序
多一条链表,存储数据的存入顺序,
1.8以前:<数组+链表+链表>
1.8以后:<数组+二叉树+链表>
TreeSet()<二叉树>
特点:存储数据时,要么拥有比较性,要么在创建TreeSet时,指定比较器.
比较性
1.让数据所属的类实现,Comparable接口,重写compareTo()方法;
比较器
2.创建TreeSet对象时,传入实现Comparaor接口,(常用匿名内部类).