当前位置:首页 > Java技术 > Java集合之map 集合使用

Java集合之map 集合使用

2022年08月04日 21:38:55Java技术2

Java集合中的四种遍历方式:

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  不止一个key
		Iterator it = map.entrySet().iterator();//获取迭代器对象it
		while (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)咨询。


作者:杨校
来源链接:https://blog.csdn.net/kese7952/article/details/78780862

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/17294.html

标签: Java集合Java
分享给朋友:

“Java集合之map 集合使用” 的相关文章

两年前写的Java基础总结书

两年前写的Java基础总结书

想法衍生 两年前的我,突发奇想,把自己学的Java基础进行规范化的整理,因为自己的文档编辑能力有限,所以写的排版不是很好,参照图书排版的形式,将书籍进行整理,可以供学习Java基础的朋友参考,由于时间有限,可能也会有问题,请指出。下载地址在最后 截图如下:...

java基础知识讲解(一)数据类型和运算符

java基础知识讲解(一)数据类型和运算符

Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。 Java中定义了3类8种基本数据类型 数值型- b...

Java 并发核心机制

Java 并发核心机制

📦 本文以及示例源码已归档在 javacore 一、J.U.C 简介 Java 的 java.util.concurrent 包(简称 J.U.C)中提供了大量并发工具类,是 Java 并发能力的主要体现(注意,不是全部,有部分并发能力的支持在其他包中)。...

Java虚拟机1:什么是Java

Java虚拟机1:什么是Java

前言 让我们来看一下Java的广告词,来自http://www.java.com/zh_CN/about/: 97%的企业桌面运行Java 美国有89%的桌面(或计算机)运行Java 全球有900万Java开发人员 开发人员的头号选择...

Java 日志框架详解

Java 日志框架详解

1. JUL学习 JUL全称Java util Logging是java原生的日志框架,使用时不需要另外引用第三方类库,相对其他日志框 架使用方便,学习简单,能够在小型应用中灵活使用。 1.1 架构介绍 Loggers...

Java日志框架那些事儿

Java日志框架那些事儿

在项目开发过程中,我们可以通过 debug 查找问题。而在线上环境我们查找问题只能通过打印日志的方式查找问题。因此对于一个项目而言,日志记录是一个非常重要的问题。因此,如何选择一个合适的日志记录框架也非常重要。在Java开发中,常用的日志记录框架有JDKLog、Log4J、LogBack、SLF4J...

JDBC连接时所犯错误1.字符集设置不合适2.连接MySQL8.0社区版时时区不一致3..包名不能以Java.命名4.驱动被弃用

Microsoft JDBC Driver 的主页为:https://msdn.microsoft.com/en-us/data/aa937724.aspx 下载所需驱动 今天连接时报了四次错,记录下来 1.java.sql.SQLException:...

Java实现阶乘运算

n!=123*…n 学习编程就是要了解从问题到程序是如何实现的 Scanner in=new Scanner(System.in); int n ; n=in.nextInt(); // int i=1; int factor=1;...

java之整数的分解可以理解为倒序输出

Scanner in=new Scanner(System.in); int number ; number=in.nextInt(); int result=0; do{ int diget=number%10;...

二分法(折半查找)的运用之java实现猜数字游戏

让计算机输入一个数 然后用户进行猜数游戏 一般而言,七次会猜对,如果猜不对,那么就是你的方法不对 在这儿涉及到的一个算法就是二分法 ***二分法查找,***也称为折半法,是一种在有序数组中查找特定元素的搜索算法。二分法查找的思路如下: (1)首先,从数组...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。