Collection集合下面常用的两个 List 和Set
集合特有的属性:
增:add(index,element);addAll(index,Collection);
删:romove(index);
改:set(index,element);
查:get(index);subList(from,to);listIterator();
Collection
|--List:元素是有序的,元素可以重复。因为该集合体系有索引
|--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度快。但是增删稍慢。线程不同步。
|--LinkedList:底层使用的是链表数据结构。特点:增删速度快,但是查询稍慢。线程不同步。
|--Vector:底层是数组数据结构。线程同步。被ArrayList替代了。因为效率底。
|--Set:元素无序,元素不可以重复。
|--HashSet:底层数据结构是哈希表
HashSet是如何保证元素唯一性的?
是通过元素的两个方法,hashCode和equals来完成。如果元素的HashCode值相同,才会判断equals是否为true;如果元素hashcode值不同,不会调用equals
注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法
|--TreeSet:可以对Set集合中的元素进行排序。底层数据结构是二叉树。保证元素唯一性的依据是compareTo方法return返回的值。 |
|