Java中的集合:
(1)Collection
List(有序,可重复)
ArrayList
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
Vector
底层数据结构是数组,查询快,增删慢
线程安全,效率低
LinkedList
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
Set(无序,唯一)
HashSet
底层数据结构是哈希表。
哈希表依赖两个方法:hashCode()和equals()
(2)Map(双列集合)
A:Map集合的数据结构仅仅针对键有效,与值无关。
B:存储的是键值对形式的元素,键唯一,值可重复。HashMap线程不安全,
HashTable线程安全,方法是Synchronize关键字的。
TreeMap
ArrayList与HashSet:
1.ArrayList会以数组的形式进行存放数据,所以就是说放进去的对象都是不唯一且有序的,可以存下多个相同的对象。
2.HashSet其本身就是无序的,唯一的,当存在相同的对象时,该对象会被替换掉,故不会存在重复的值.(为什么不会出现重复的值?原因是采取了Hash的算法,每一个放进去的值或者说对象都会生成一些特定的数字,并进行比对。)
HashCode:
HashCode方法的作用就是进行比较对象内部的值,如果对象内部的值相同则会被归纳,为一个对象,在new HashSet进行存放值的之后可以相继进行使用(java类中右键-->resoure(源码)-->hashCode() and equals()...)。