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集合当中要保证元素的唯一性。