java Map
来源:互联网 发布:seo站外怎么优化 编辑:程序博客网 时间:2024/06/11 12:54
Map — 接口
1 数据的保存 是以键值形式存储的
2 键 是唯一的(不能重复)
Hashset 和 Hashmap之间的关系Hashset 底层实现 实际上就是一个 HashmapHashset 是依赖 HashmapHashMap<String , Integer> map = new HashMap<>(); //保存键值对 //添加键值对方法的返回值 返回 被覆盖的值部分 //测试添加方法的返回值 Integer num6 = map.put("瞿金耀", 20); Integer num1 = map.put("瞿金耀", 20); Integer num2 = map.put("静", 18); Integer num3 = map.put("越", 19); Integer num4 = map.put("红", 17); System.out.println(num1); System.out.println(num2); System.out.println(num3); System.out.println(num4); //打印map: ---- 重写toString方法 System.out.println(map);
Hashset(重写Hashcode()) 和 equals()
HashMap<Student, String> hashMap = new HashMap<>(); hashMap.put(new Student("张三",29), "南京"); hashMap.put(new Student("静",18), "南京"); hashMap.put(new Student("张三",29), "南京"); hashMap.put(new Student("月",18), "南京"); //键不会重复保存 但是 值会覆盖上面一个值 System.out.println(hashMap);
@Overridepublic int hashCode() { final int prime = 31; int result = 1; result = prime * result + Age; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result;}@Overridepublic boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Student other = (Student) obj; if (Age != other.Age) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true;}
Map 的三种 遍历方式(重点)
Map类中没有迭代器 不能直接迭代(遍历)
keySet()这个方法是把map中所有key取出放入
一个Set集合中 返回给你
get()通过传入键key 返回的时候 键key 对应value值
一 用迭代器
//遍历Map
HashMap<String, Integer> map = new HashMap<>(); map.put("松松", 11); map.put("涵涵", 11); map.put("宁宁", 11); map.put("亮亮", 11); //取出所有key的set集合 Set<String> keySet = map.keySet(); //取出set集合中 迭代器 Iterator<String> iterator = keySet.iterator(); //为了拿到所有的key去遍历 set集合 while (iterator.hasNext()) { //每一个key String key = iterator.next(); //通过每一个key找出对应的每一个value; Integer value= map.get(key); //打印 System.out.println(key+"---"+value);
二 增强for循环
// 遍历Map HashMap<String, Integer> map = new HashMap<>(); map.put("松松", 11); map.put("涵涵", 11); map.put("宁宁", 11); map.put("亮亮", 11); //取出所有key的set集合 Set<String> keySet = map.keySet(); for (String key : keySet) { Integer value= map.get(key); System.out.println(key+"="+value); }
三 entryset()该方法返回的是一个集合 集合中存储的是一个一个键值对象HashMap<String, Integer> map = new HashMap<>(); map.put("松松", 11); map.put("涵涵", 11); map.put("宁宁", 11); map.put("亮亮", 11); //获取map中所有的Entry对象的Set集合 Set<Entry<String, Integer>> entrySet = map.entrySet(); //使用set集合中的迭代器对每一个Entry遍历 Iterator<Entry<String, Integer>> iterator = entrySet.iterator(); //迭代 while (iterator.hasNext()) { //取出entry对象 Entry<String, Integer> entry = iterator.next(); //从Entry对象中获取key和value String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key+"="+value);
阅读全文
0 0
- java Map Map.Entry
- java map
- java map
- Java - Map
- java map
- java Map
- java--Map
- Java Map
- Java Map
- Java-Map
- [Java] Map
- 【Java】Map
- Java-Map
- java .map()
- Java Map
- Java - Map
- Java - Map
- java MAP
- Hadoop、Storm和Spark 三者的区别、比较
- redis cluster--简介
- ZigBee如何抓包
- linux之强大的find命令
- 在VMware中设置CentOS7的网络
- java Map
- 设计模式之策略设计模式
- JavaScript实现表单的分向提交
- 外星日历
- 一个新消息类创建的例子
- Why did you (google) deprecate GCC (in android) ?
- 微信小程序:能否上传多张图片
- cmd或eclipse的控制台输出日志logger乱码问题记录
- openstack创建虚拟机keystone流程中文图