Java集合之map 集合使用
package cn.javabs.demo;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/*** Map集合的四种运用方法* @author MrYang*/
public class MapDemo {public static void main(String[] args) {Map<Integer, String> map = new HashMap<Integer, String>();map.put(1, "Java");map.put(2, "javaWeb");map.put(3, "JavaEe");map.put(4, "JavaEe");map.put(4, "JavaEe");// 这里有两个4,且内容重复 会有一个进行舍弃System.out.println(map.size());// 第一种:/** Set<Integer> set = map.keySet(); //得到所有key的集合* * for (Integer it : set)* { * String str = map.get(it);* System.out.println(it + " " + str); * }*/System.out.println("第一种:通过Map.keySet遍历key和value:");for (Integer it : map.keySet()) {//map.keySet()返回的是所有key的值String str = map.get(it);//得到每个key多对用value的值System.out.println(it + " " + str);}// 第二种:System.out.println("第二种:通过Map.entrySet使用iterator遍历key和value:");Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();while (it.hasNext()) {Map.Entry<Integer, String> entry = it.next();System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}// 第三种:推荐,尤其是容量大时System.out.println("第三种:通过Map.entrySet遍历key和value");for (Map.Entry<Integer, String> entry : map.entrySet()) {//Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry//entry.getKey() ;entry.getValue(); entry.setValue();//map.entrySet() 返回此映射中包含的映射关系的 Set视图。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集合中根据值取键【根据value取key值】
注意:
在Java中,一个Key 是对应一个Value,但一个Value却可以对应多个Key。
举个栗子:
我的年龄是25岁,我的学号也是25号,那么根据25 找到的不一定是年龄age或者是学号sid。所以根据value取key值,值有很多个。
package cn.javabs.demo;import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
/*** 根据value取key* @author MrYang*/
public class MapDemo
{public static void main(String[] args) {Map<String, Object> map = new LinkedHashMap<String, Object>(); map.put("deviceName","computer"); // 设备名称map.put("deviceModel", "c1011"); // 设备型号map.put("deviceSize", "22.5"); // 设备尺寸map.put("deviceColor", "Black"); // 设备颜色}@SuppressWarnings("rawtypes")public static String getKeyByValue(Map map ,Object value){String keys = "";//先定义一个keys 不止一个keyIterator it = map.entrySet().iterator();//获取迭代器对象itwhile (it.hasNext()){Map.Entry entry = (Entry) it.next();Object obj = entry.getValue();if(obj != null && obj.equals(value)){keys = (String) entry.getKey();}}return keys;}}
作者: 杨校
出处: http://blog.csdn.net/kese7952
分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询。
Java集合之map 集合使用相关推荐
- java 中map_Java Map集合详解
Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象.其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素 ...
- Java进阶(七)Set系列集合、Map集合体系
七.Set系列集合.Map集合体系 需要学会什么? Set系列集合的特点:Set系列集合的特点和底层原理. 集合工具类Collections:快速的对集合进行元素的添加.排序等操作. 综合案例:把Co ...
- Java中遍历Map集合的5种方式总结
这篇文章主要给大家介绍了关于Java中遍历Map集合的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 方式一 通过Map.keySet使用iterator遍历 ...
- JAVA中的Map集合
JAVA中的Map集合 1.Map简介 java.util.map接口 1.Map称为查找表,该数据结构的样子是一个"多行两列"的表格,左列为key,右列为value,Map总是根 ...
- java进阶开发-----Set集合、Map集合(接java集合)
(一).Set系列集合 Set系列集合特点 无序:存取顺序不一致 不重复:可以去除重复 无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素. Set集合实现类特点 Ha ...
- Java高级-Lambda 表达式、异常处理、集合、泛型、List集合、Map集合、Collections类
目录 Lambda 表达式 Java Lambda 表达式的优缺点 异常处理 Exception 处理及常见异常 try catch语句 try catch finally语句 throws 声明异常 ...
- Java进阶,Set集合,Map集合
Java进阶,Set集合,Map集合 一.Set系列集合 1.Set系列集系概述 Set系列集合特点 无序:存取顺序不一致 不重复:可以去除重复 无索引:没有带索引的方法,所以不能使用普通for循环遍 ...
- 【java笔记】map集合
map<K,V>:将键(k)映射到值(v)的对象,通过键可以找到对应的值 Map集合的特点: 1.双列集合,一个元素包含两个值(key-Value) 2.key和value类型可以相同,也 ...
- Java_Collection集合与Map集合的理解与应用
集合 概述:可以存储多个数据的容器 集合和数组的区别: 相同点:都可以存储多个数组 不同点: 数组中可以存多个数据,但是不能自由的实现数据的新增和删除操作 集合中除了可以存储多个数据,还可以自由的实现 ...
- 集合 (二) ----- Map集合详解
相关文章: <集合 (一) ----- 集合的基本概念与Collection集合详解> <集合 (二) ----- Map集合详解> 文章目录 Map集合详解 一.Map集合基 ...
最新文章
- Git(一)之基本操作详解
- 清华镜像源地址_PyCharm安装第三方库(内含添加国内镜像源方法)
- android 之四大组件的Activity详解
- 华为RH2288V3服务器部署指南
- 腾讯AI Lab正式开源业内最大规模多标签图像数据集
- django框架中表单
- HTMLCSS 超简单的前端设计入门-1!
- feign rest_与Feign客户轻松进行REST通信
- 2017菜鸡C与C++工程师总结,撸码撸码,垃圾专科生撸码人生
- html 手机浏览器:屏幕适配 - 代码篇
- 联想笔记本暗屏几乎看不见_2020年内存条推荐-选购指南(DDR3/DDR4/台式/笔记本内存)...
- QTP自动化测试—用户登录
- Atitit 提升扩展性 自由化理念 参数 第一章 前瞻性设计 第二章 自由化理念 自由化参数 json map等半结构化参数,dsl等全功能参数 自由化功能接口 dsl 自由化返回
- https 带端口_基于scapy模块的8种端口扫描
- 基于Springboot的在线音乐网站开发与实现
- es6模板字符串和占位符${}
- 用混淆矩阵计算kappa系数
- 测试 这篇是拿来测试51ditu的OpenAPI的
- HLS(一)Vivado高层次综合概述
- 2019-2020-1 1823《程序设计与数据结构》每周成绩