Java Map

Map中不能包含相同的键,每个键只能映射一个值。

HashMap:并不能保证它的元素的顺序,元素加入散列映射的顺序并不一定是它们被迭代方法读出的顺序。

  • Map.Entry

Map.Entry 是Map中的一个接口,他的用途是表示一个映射项(里面有Key和Value)

Map.Entry里有相应的getKey和getValue方法,即JavaBean,让我们能够从一个项中取出Key和Value。

  • Map.entrySet()

Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>。Set里面的类型是Map.Entry,里面存放的是键值对。一个K对应一个V。

  • Map.keyset()

keySet是键的集合,Set里面的类型即key的类型。

package Map.test;import java.util.*;public class Test {public static void main(String args[]) {// 创建HashMap 对象HashMap hm = new HashMap();// 加入元素到HashMap 中hm.put("John Doe", new Double(3434.34));hm.put("Tom Smith", new Double(123.22));hm.put("Jane Baker", new Double(1378.00));hm.put("Todd Hall", new Double(99.22));hm.put("Ralph Smith", new Double(-19.08));// 返回包含映射项的集合Set set = hm.entrySet();// 用Iterator 得到HashMap 中的内容Iterator i = set.iterator();// 显示元素while (i.hasNext()) {// Map.Entry 可以操作映射的输入Map.Entry me = (Map.Entry) i.next();System.out.print(me.getKey() + ": ");System.out.println(me.getValue());}System.out.println();// 让John Doe 中的值增加1000double balance = ((Double) hm.get("John Doe")).doubleValue();//得到旧值// 用新的值替换旧的值hm.put("John Doe", new Double(balance + 1000));System.out.println("John Doe's 现在的资金:" + hm.get("John Doe"));}
}
/*
Todd Hall: 99.22
John Doe: 3434.34
Ralph Smith: -19.08
Tom Smith: 123.22
Jane Baker: 1378.0John Doe's 现在的资金:4434.34
*///四种遍历Map
public static void main(String[] args) {Map<String, String> map = new HashMap<String, String>();map.put("1", "value1");map.put("2", "value2");map.put("3", "value3");//第一种:普遍使用,二次取值System.out.println("通过Map.keySet遍历key和value:");for (String key : map.keySet()) {System.out.println("key= "+ key + " and value= " + map.get(key));}//第二种System.out.println("通过Map.entrySet使用iterator遍历key和value:");Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, String> entry = it.next();System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//第三种:推荐,尤其是容量大时System.out.println("通过Map.entrySet遍历key和value");for (Map.Entry<String, String> entry : map.entrySet()) {System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//第四种System.out.println("通过Map.values()遍历所有的value,但不能遍历key");for (String v : map.values()) {System.out.println("value= " + v);}}

Java基础 HashMap的添加 修改 遍历 Map.Entry Map.entrySet()的使用及实例相关推荐

  1. Java基础-HashMap集合

    目录 一级目录 二级目录 三级目录 Map接口的常用方法 2.Map集合的遍历 第一种方式:获取所有的key,通过遍历key,来遍历value 3.哈希表数据结构 1.hashMap集合底层是哈希表/ ...

  2. Java基础-hashMap原理剖析

    Java基础-hashMap原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.什么是哈希(Hash) 答:Hash就是散列,即把对象打散.举个例子,有100000条数 ...

  3. Java 基础——HashMap 遍历方式

    目录 1.使用迭代器 (Iterator) EntrySet 的方式进行遍历 2.使用迭代器 (Iterator) KeySet 的方式进行遍历 3.使用 foreach EntrySet 的方式进行 ...

  4. Java基础---集合的概述---list、set、map、泛型、collections

    集合的概述 单列集合的体系: Collection 单列集合的顶层接口 List Collection的子接口,增加了一些特有的方法,有序 可以重复 有索引 ArrayList 底层采用的数组结构实现 ...

  5. Java基础 HashMap实现原理及方法

    1.什么是HashMap? HashMap通常提起他,我们想到的就是键值对方式存储(key-value型式),可以接收null键值和null值.基于Map接口的非同步实现(也就是线程不安全),并不保证 ...

  6. Java基础——Day18——泛型,collections,set,map

    Day 18 一.泛型(掌握) 参数化数据类型 创建类的时候无法确定属性的数据类型,创建对象的时候根据实际需求确定数据类型 package com.qf.test;import java.util.A ...

  7. 51自学网-Java基础视频教程-笔记 最后修改于2020/9/9

    Java基础视频教程笔记 简介 正文 ==JVM Java Virtual Machine== 栈区 Stack Segment 堆区 Heap Segment 静态区 Data Segment 代码 ...

  8. java集合 HashMap的三种遍历方式

    前言: HashMap的集合中的比重是无可厚非的,由自身的数组+链表/红黑树构成的(JDK 1.8),这样使得HashMap优点表现出来: 数组查询效率快: 链表的插入和删除效率也加快 但是HashM ...

  9. java基础 - file类(递归遍历目录)

    JAVA SE 基础练习--file类方法练习 遍历所有对象 f:/test/111.txt /aa.txt /aa/aaa.txt 找出所有文件 和路径 显示结果要求: f:/test/111.tx ...

最新文章

  1. php的正则怎么写,一个正则的写法 php
  2. QScintilla
  3. 深入浅出python机器学习_如何用python画三维图? add_subplot() Axes3D() plot_surface() gca()
  4. 智慧物业小程序_刷脸支付+电商小程序+智慧酒店营销方案
  5. Navicat PatchNavicat
  6. ElementUI-自定义模板包含编辑与删除的功能
  7. 浏览器 重定向次数限制_临近年关,修复ASP.NET Core因浏览器内核版本引发的单点登录故障...
  8. apache做yum源_svn+apache的yum源安装方式
  9. 飞机大战——图文详解
  10. sopcast在ubuntu上的安装与使用
  11. win10下装黑苹果双系统_Ubuntu 18.04.3+Windows10双系统安装全教程
  12. 过期带备案域名扫描工具SEO工具
  13. Python爬取国家税务总局纳税信用A级纳税人信息!
  14. windows修改文件后缀名(文件扩展名)
  15. 一些风力发电机组工作参数的安全运行范围
  16. 基于osgearth开发的三维仿真与态势软件系统源代码
  17. 高分子PEG分子量从1000-40000不等,DSPE-PEG9-Mal
  18. 穷查理宝典-----第二章 (芒格的生活、学习决策方法)
  19. 行为型设计模式应用(一)
  20. 吴恩达AI机器学习-01神经网络与深度学习week2下-神经网络基础 python中的广播

热门文章

  1. vb.net 的 openFileDialog 控件文件筛选器使用
  2. 计算机二级考试C++考试大纲
  3. PyQt5 QTreeWidget更改item项前的展开折叠三角图标
  4. android.support.v7 fragme,打造最强RecyclerView侧滑菜单,长按拖拽Item,滑动删除Item
  5. 华为主题包hwt下载_华为主题 | 黑白人物
  6. grade java_Gradle Java 构建入门
  7. adaptivitypara设置选0还是1_喝牛奶,选全脂还是低脂?家里人能不能喝同1种牛奶?...
  8. 阿里云使用idea通过hdfs api来上传文件时出现could only be written to 0 of the 1 minReplication nodes.错误
  9. 2345天气王怎么查看历史天气 2345天气王如何查看历史天气
  10. Python排序算法(二) 快速排序、希尔排序、归并排序