Java集合之HashMap的用法

在学习中,出现了几次对HashMap的使用不熟练的情况,现将HashSet的用法总结如下。

1. 基本用法

HashMap map = new HashMap<>();

map.put("1", "a");

map.put("2", "b");

map.put("3", "a");

map.put("4", "c");

//map.put("4", "d");  //可以运行键值都为"4"(如果键相同,后者覆盖前者)

System.out.println(map);

System.out.print(map.keySet()+" ");  //集合中所有键以Set集合形式返回

System.out.println();

System.out.print(map.values()+" ");  //集合中所有值以Collection集合形式返回

System.out.println();

System.out.println("集合大小:"+map.size());

System.out.println("是否包含该键:"+map.containsKey("2"));  //返回boolean

System.out.println("是否包含该值:"+map.containsValue("b"));  //返回boolean

System.out.println(map.isEmpty());  //判断是否为空,若不包含键-值映射关系则返回true

map.remove("4");  //删除映射关系

System.out.println(map);

map.clear();//清空集合

System.out.println(map);

输出结果如下:

总结:增 — map.put(“4”, “c”);    删 — map.remove(“4”);    改 — map.put(“4”, “d”);    查 — map.containsKey(“2”);       map.containsValue(“b”);

2. 两种遍历方法

第一种方法:使用keySet()

这种方法遍历了2次,一次是转为iterator,另一次是从HashMap中取出key所对应的value。

(1) For-Each

Set keys = map.keySet();  //map.keySet()返回key的集合

for(String key:keys) {

System.out.println(key+":"+map.get(key));  //map.get(key)返回key所对应的value值

}

(2) 迭代器

Set keys = map.keySet();

Iterator it = keys.iterator();

String key;

while (it.hasNext()) {

key = it.next();

System.out.println(key+":"+map.get(key));

}

第二种方法:使用entrySet()

这种方法只遍历了1次,它把key和value都放到了entry中,因此比keySet()快。

(1) For-Each

Set> entrySet = map.entrySet();  //map.entrySet()返回键值对的集合

for (Entry entry:entrySet) {

System.out.println(entry.getKey()+":"+entry.getValue());  //entry.getKey()返回key,entry.getValue()返回value

}

(2) 迭代器

Set> entrySet = map.entrySet();

Iterator> it = entrySet.iterator();

Entry entry;

while (it.hasNext()) {

entry = it.next();

System.out.println(entry.getKey()+":"+entry.getValue());

}

总结:当map中容量较大时,推荐使用第二种entrySet()的方法。

3. 根据value获取key

如果我们想通过key获取对应的value,可以map.get(key)获得value。 而如果需要通过value获取对应的key,则需要自己实现相应的方法。

第一种方法:map.keySet()

(1) For-Each

public static Object getKey(HashMap map, Object value){

ArrayList keyList = new ArrayList<>();

for(Object key: map.keySet()){

if(map.get(key).equals(value)){

keyList.add(key);

}

}

return keyList;

}

(2) 迭代器

public static Object getKey(HashMap map, Object value){

ArrayList keyList = new ArrayList<>();

Set keys = map.keySet();

Iterator it = keys.iterator();

Object key;

while (it.hasNext()) {

key = it.next();

if(map.get(key).equals(value)){

keyList.add(key);

}

}

return keyList;

}

第二种方法:map.entrySet()

(1) For-Each

public static Object getKey(HashMap map, Object value){

ArrayList keyList = new ArrayList<>();

Set> entrySet = map.entrySet();

for (Entry entry:entrySet) {

if(entry.getValue().equals(value)){

keyList.add(entry.getKey());

}

}

return keyList;

}

(2) 迭代器

public static Object getKey(HashMap map, Object value){

ArrayList keyList = new ArrayList<>();

Set> entrySet = map.entrySet();

Iterator> it = entrySet.iterator();

Entry entry;

while(it.hasNext()){

entry = it.next();

if(entry.getValue().equals(value)){

keyList.add(entry.getKey());

}

}

return keyList;

}

java用hashmap_Java集合之HashMap的用法相关推荐

  1. java 实现hashmap_Java集合(十)实现Map接口的HashMap

    Java集合(十)继承Map接口的HashMap 一.HashMap简介(基于JDK1.8) HashMap是基于哈希表(散列表),实现Map接口的双列集合,数据结构是"链表散列" ...

  2. Java数组转集合之Arrays.asList()用法

    Arrays.asList()用法 使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计 ...

  3. Java基础知识强化之集合框架笔记56:Map集合之HashMap集合(HashMapString,Student)的案例...

    1. HashMap集合(HashMap<String,Student>)的案例 HashMap是最常用的Map集合,它的键值对在存储时要根据键的哈希码来确定值放在哪里. HashMap的 ...

  4. java中hashmap_Java HashMap – Java中的HashMap

    java中hashmap Java HashMap is one of the most popular Collection classes in java. Java HashMap is Has ...

  5. Java集合之一—HashMap

    深入浅出学Java--HashMap 哈希表(hash table) 也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈 ...

  6. java集合之HashMap相关原理 方法

    java集合之HashMap Map接口的基于哈希表的实现. 此实现提供所有可选的映射操作,并允许空null值和空null键.(除了非同步和允许使用 null 之外,HashMap 类与 Hashta ...

  7. java学习--基础知识进阶第七天--HashSet集合、HashMap集合(集合遍历)

    今日内容介绍 u  HashSet集合 u  HashMap集合(集合遍历) 第1章 HashSet集合 1.1 Set接口的特点   Set体系的集合: A:存入集合的顺序和取出集合的顺序不一致 B ...

  8. 聊聊Java系列-集合之HashMap底层结构原理

    前言           由于HashMap在我们的工作和面试中会经常遇到,所以搞懂HashMap的底层结构原理就显得十分有必要了.在JDK1.8之前,HashMap的底层采用的数据结构是数组+链表, ...

  9. 【Java Map集合 之 hashMap工作常用遍历操作】

    集合关系图 1.文章前介 日常工作中常用的集合有ArrayList.HashMap和HashSet.前两者在开发中更是广为使用.本章主要介绍的是Map下HashMap 在日常工作中的遍历操作.将会以容 ...

最新文章

  1. mysql的常用函数
  2. python【Matlibplot绘图库】-二维图形绘制
  3. Traversing Mapping Filtering Folding Reducing
  4. 开发者最讨厌的编程语言:Perl 名列第一,PHP、Objective-C 和 Ruby 都在其中
  5. Codeforces 1009E Intercity Travelling 【期望】【概率】
  6. python 编辑excel需要什么包,python操作excel的包(openpyxl、xlsxwriter)
  7. 数据挖掘案例:建立客户流失模型
  8. EBS R12中SLA子分类帐与子模块的关联关系
  9. 服务器磁盘阵列数据恢复方法和数据恢复过程详解
  10. python关键字匹配_python正则表达式同时匹配多个关键字(多关键字匹配)
  11. 直击微软第九频道著名主持Robert Green 对话一站式示例代码库大老板梁梅女士
  12. 第六章、坐标轴的定制
  13. 三值的排序 Sorting a Three-Valued Sequence(洛谷 P1459)
  14. 《JavaScript 闯关记》
  15. 身家过亿的帝都王子来到1024盛宴-小码农献上linux进阶知识点一篇
  16. java中poi导出Excel表格(前台流文件接收)
  17. 在计算机技能大赛上的总结发言,我院在全省职业院校技能大赛工作总结交流会上作典型发言...
  18. What is Comunion 2022?
  19. 【python】练习:长度转换
  20. Pikachu靶场通关笔记--Sql Inject(SQL注入)

热门文章

  1. 【转载国外好文】代工开发一个iOS应用没有那么容易
  2. 使用Python扫描端口
  3. deinstall oracle 11g on linux
  4. jQuery实现的简单文字提示效果模拟title
  5. 荣获2009年“微软最有影响力开发者”称号
  6. h5 input 阴影_html5中input表单加边框,阴影效果
  7. 2021,软件测试的出路在哪里?
  8. 测试用例的“真相”与“事实” 这9个事实让人扎心!
  9. pdo mysql fedora_fedora编译安装php5.5
  10. 酒店前台html,酒店前台常用英语单词