java用hashmap_Java集合之HashMap的用法
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的用法相关推荐
- java 实现hashmap_Java集合(十)实现Map接口的HashMap
Java集合(十)继承Map接口的HashMap 一.HashMap简介(基于JDK1.8) HashMap是基于哈希表(散列表),实现Map接口的双列集合,数据结构是"链表散列" ...
- Java数组转集合之Arrays.asList()用法
Arrays.asList()用法 使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计 ...
- Java基础知识强化之集合框架笔记56:Map集合之HashMap集合(HashMapString,Student)的案例...
1. HashMap集合(HashMap<String,Student>)的案例 HashMap是最常用的Map集合,它的键值对在存储时要根据键的哈希码来确定值放在哪里. HashMap的 ...
- java中hashmap_Java HashMap – Java中的HashMap
java中hashmap Java HashMap is one of the most popular Collection classes in java. Java HashMap is Has ...
- Java集合之一—HashMap
深入浅出学Java--HashMap 哈希表(hash table) 也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈 ...
- java集合之HashMap相关原理 方法
java集合之HashMap Map接口的基于哈希表的实现. 此实现提供所有可选的映射操作,并允许空null值和空null键.(除了非同步和允许使用 null 之外,HashMap 类与 Hashta ...
- java学习--基础知识进阶第七天--HashSet集合、HashMap集合(集合遍历)
今日内容介绍 u HashSet集合 u HashMap集合(集合遍历) 第1章 HashSet集合 1.1 Set接口的特点 Set体系的集合: A:存入集合的顺序和取出集合的顺序不一致 B ...
- 聊聊Java系列-集合之HashMap底层结构原理
前言 由于HashMap在我们的工作和面试中会经常遇到,所以搞懂HashMap的底层结构原理就显得十分有必要了.在JDK1.8之前,HashMap的底层采用的数据结构是数组+链表, ...
- 【Java Map集合 之 hashMap工作常用遍历操作】
集合关系图 1.文章前介 日常工作中常用的集合有ArrayList.HashMap和HashSet.前两者在开发中更是广为使用.本章主要介绍的是Map下HashMap 在日常工作中的遍历操作.将会以容 ...
最新文章
- mysql的常用函数
- python【Matlibplot绘图库】-二维图形绘制
- Traversing Mapping Filtering Folding Reducing
- 开发者最讨厌的编程语言:Perl 名列第一,PHP、Objective-C 和 Ruby 都在其中
- Codeforces 1009E Intercity Travelling 【期望】【概率】
- python 编辑excel需要什么包,python操作excel的包(openpyxl、xlsxwriter)
- 数据挖掘案例:建立客户流失模型
- EBS R12中SLA子分类帐与子模块的关联关系
- 服务器磁盘阵列数据恢复方法和数据恢复过程详解
- python关键字匹配_python正则表达式同时匹配多个关键字(多关键字匹配)
- 直击微软第九频道著名主持Robert Green 对话一站式示例代码库大老板梁梅女士
- 第六章、坐标轴的定制
- 三值的排序 Sorting a Three-Valued Sequence(洛谷 P1459)
- 《JavaScript 闯关记》
- 身家过亿的帝都王子来到1024盛宴-小码农献上linux进阶知识点一篇
- java中poi导出Excel表格(前台流文件接收)
- 在计算机技能大赛上的总结发言,我院在全省职业院校技能大赛工作总结交流会上作典型发言...
- What is Comunion 2022?
- 【python】练习:长度转换
- Pikachu靶场通关笔记--Sql Inject(SQL注入)
热门文章
- 【转载国外好文】代工开发一个iOS应用没有那么容易
- 使用Python扫描端口
- deinstall oracle 11g on linux
- jQuery实现的简单文字提示效果模拟title
- 荣获2009年“微软最有影响力开发者”称号
- h5 input 阴影_html5中input表单加边框,阴影效果
- 2021,软件测试的出路在哪里?
- 测试用例的“真相”与“事实” 这9个事实让人扎心!
- pdo mysql fedora_fedora编译安装php5.5
- 酒店前台html,酒店前台常用英语单词