目录
HashSet集合类
之所以在这里介绍不同的集合,比如HashSet、TreeSet等,是因为它们在存储数据元素的时候底层实现是不一样的,比如使用红黑树的思想,哈希存储的思想等等。。
HashCode方法和equals方法的配合流程:
equals方法会导致使用HashSet添加元素的时候不会出现重复的情况(数据的重复取决于你自己写的equals方法)
下面是重写方法的示例:
下面是创建的Hash表示例:
原理解析:
旧版本
JDK8以后:
先通过对象的hashcode方法拿到原始的哈希值,再对原始的哈希值做hash扰动,最后跟原始hash做异或操作。
LinkedHashSet集合
总结:
集合工具类之可变参数:
下面是一个示例:
Collections集合工具类:
下面是一个示例:
双列集合:
下面是一个HashMap的示例:
对于HashMap来说,如果存储的是自定义的对象,需要重写hashCode和equals方法。
同样,对于TreeSet来说,如果存储的也是自定义的对象,需要重写compare方法。
Map集合的三种遍历方式:
第一种:
下面是一个示例:
第二种:
下面是一个示例:
第三种:
下面是一个示例:
lambda的写法: