今日内容
Map
可变参数
Stream流
数据结构演示网站
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
哈希值
同一个对象的哈希值一定相同
不同对象的哈希值可能相同
总结:
如果哈希值不同一定不是同一个对象
哈希值相同可能是同一个对象也可能不是同一个对象
HashSet去重的原理:
依赖hashCode和equals方法的
hashCode用于计算哈希值,这个方法一定会执行的
equals方法用于进一步判断的(哈希值相同的时候,还需要equals方法进一步判断是否是同一个对象),
它不一定会执行。
通过hashCode方法计算哈希值,然后根据哈希值计算在数组中的存储位置,如果该位置上没有元素,则直接存入。
如果该位置上有元素,则需要通过equals方法进一步判断对象中的成员变量是否完全一样,如果一样,则不存入,
如果不一样,则存入。
Map体系结构
Map接口
|-HashMap
|-TreeMap
什么是Map
<K,V>
Map的特点
键不能重复,值可以重复
如果键重复,则会值覆盖
一个键只能找到一个唯一的值,键值对是一一对应的
HashMap的键的特点和HashSet的特点一样
TreeMap的键的特点和TreeSet的特点一样
Map是存储无序的
Map是无索引的,不能通过索引来操作元素
Map的基本使用
1、创建对象
2、添加元素
3、遍历(调用toString方法打印)
Map集合的遍历
Map<String,String> map = new HashMap<>();
map.put("1号丈夫","1号妻子");
map.put("2号丈夫","2号妻子");
map.put("3号丈夫","3号妻子");
map.put("4号丈夫","4号妻子");
map.put("5号丈夫","5号妻子");
//获取到所有的键
Set<String> keys = map.keySet();
//遍历Set集合得到每一个键
for (String key : keys) {
//通过每一个键key,来获取到对应的值
String value = map.get(key);
System.out.println(key + "---" + value);
}
Map
常用方法
删除
void clear()
V remove(Objec