hash 散列,

添加对象的时候,首先判断两个对象的hashcode是否相同,如果不同,直接添加,如果相同,再判断equals方法,如果不同直接添加 equls主要的作用是比较对象的内容。如果不同也能添加, 与是否是同一个对象无关。

equals是判断对象内容是否相等

hashcode

hashset hashmap当中不能存放重复元素,判断标准。

先判断hashcode   再判断equals方法进行判断。

hashcode   不一样就可以直接添加,哪怕是同一个对象也可以进行添加。

第二个条件是equals方法,返回值是boolean值。判断对象的值是否相同。

优点在于检索的速度上。

HashSet:线程不安全,存取速度快,它是如何唯一性。

TreeSet:线程不安全,可以对Set集合当中的元素进行排序。

通过Compareto Comapre方法来保证元素唯一性。

泛型的特点:

Map集合与Collection不同?并列存在

map讲究是KV对 key-value---->Entry(条目)

key(键)--value(值)

map.put  Collection用的是add

map元素没有直接取出元素的方法,而且是先转换成Set然后再取出迭代取出相应的值进行操作。

所有的Key都位于一个Set当中,Set当中的值是不能重复的。

Set set=map.keySet()返回值一定是一个集合。

map.get(key)获取map当中的值。

map集合当中要保证元素的唯一性。