Java map 优雅的元素遍历方式说明

Java 8 , Lambda + foreach 语法糖, 写起来非常的 clean

public static void main(String[] args) {
    // map init
    Map<String, String> map = new HashMap<>();
    map.put("k", "v");

    /*=====处理函数只有单条语句=====*/
    map.forEach((k, v) -> System.out.println(k + v));

    /*=====处理函数有多个步骤=======*/
    map.forEach((k, v) -> {
      System.out.println(111);
      System.out.println(k + v);
    });
  }

补充知识:java 遍历Map 和 根据Map的值(value)取键(key)

看代码吧~

public static void main(String[] args) {
//		Map<String, Object> map = new HashMap<String, Object>();
		Map<String, Object> map = new LinkedHashMap<String, Object>();
		map.put("username","zhaokuo");
		map.put("password", "123456");
		map.put("email", "zhaokuo719@163.com");
		map.put("sex", "男");

		//第一种 用for循环的方式
		for (Map.Entry<String, Object> m :map.entrySet()) {
			System.out.println(m.getKey()+"\t"+m.getValue());
		}

		//利用迭代 (Iterator)
		Set set=map.entrySet();
		Iterator iterator=set.iterator();
		while(iterator.hasNext()){
				Map.Entry<String, Object> enter=(Entry<String, Object>) iterator.next();
				System.out.println(enter.getKey()+"\t"+enter.getValue());
		}
		//利用KeySet 迭代
		Iterator it = map.keySet().iterator();
		while(it.hasNext()){
			 String key;
		   String value;
		   key=it.next().toString();
		   value=(String) map.get(key);
		   System.out.println(key+"--"+value);
		}
		//利用EnterySet迭代
		Iterator i=map.entrySet().iterator();
		System.out.println( map.entrySet().size());
		String key;
		String value;
		while(i.hasNext()){
		    Map.Entry entry = (Map.Entry)i.next();
		    key=entry.getKey().toString();
		    value=entry.getValue().toString();
		    System.out.println(key+"===="+value);
		} 

		System.out.println(getKeyByValue(map, "zhaokuo"));
	}
//根据Value取Key
	public static String getKeyByValue(Map map, Object value) {
		String keys="";
		Iterator it = map.entrySet().iterator();
		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;
		}

以上这篇Java map 优雅的元素遍历方式说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java四种遍历Map的方法

    选择适合的最好 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * Created by song on 2019/1/17. **/ public class MapT { public static void main(String[] args) { Map<Integer,String> map=new HashMap<>

  • Java HashMap 如何正确遍历并删除元素的方法小结

    (一)HashMap的遍历 HashMap的遍历主要有两种方式: 第一种采用的是foreach模式,适用于不需要修改HashMap内元素的遍历,只需要获取元素的键/值的情况. HashMap<K, V> myHashMap; for (Map.entry<K, V> item : myHashMap.entrySet()){ K key = item.getKey(); V val = item.getValue(); //todo with key and val //WARNI

  • Java如何在List或Map遍历过程中删除元素

    遍历删除List或Map中的元素有很多种方法,当运用不当的时候就会产生问题.下面通过这篇文章来再学习学习吧. 一.List遍历过程中删除元素 使用索引下标遍历的方式 示例:删除列表中的2 public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(2); list.add(3); list.add(

  • Java map 优雅的元素遍历方式说明

    Java 8 , Lambda + foreach 语法糖, 写起来非常的 clean public static void main(String[] args) { // map init Map<String, String> map = new HashMap<>(); map.put("k", "v"); /*=====处理函数只有单条语句=====*/ map.forEach((k, v) -> System.out.pri

  • java Map接口子类HashMap遍历与LinkedHashMap详解

    目录 一.概述 二.Map常用子类 三.Map接口中的常用方法 四.Map集合遍历键找值方式 五.Entry键值对对象 六.Map集合遍历键值对方式 七.HashMap存储自定义类型键值 八.LinkedHashMap 九.Map集合练习 十.JDK9对集合添加的优化 一.概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口

  • Java HashMap三种循环遍历方式及其性能对比实例分析

    本文实例讲述了Java HashMap三种循环遍历方式及其性能对比.分享给大家供大家参考,具体如下: HashMap的三种遍历方式 (1)for each map.entrySet() Map<String, String> map = new HashMap<String, String>(); for (Entry<String, String> entry : map.entrySet()) { entry.getKey(); entry.getValue();

  • Java二叉树的四种遍历方式详解

    二叉树的四种遍历方式: 二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次. 四种遍历方式分别为:先序遍历.中序遍历.后序遍历.层序遍历. 遍历之前,我们首先介绍一下,如何创建一个二叉树,在这里用的是先建左树在建右树的方法, 首先要声明结点TreeNode类,代码如下: public class TreeNode { public int data; public TreeNode leftC

  • Java Map的几种循环方式总结

    根据JDK的新特性,用For循环Map,例如循环Map的Key Java代码 复制代码 代码如下: for(String dataKey : paraMap.keySet())    {        System.out.println(dataKey );               } 这里要注意的是,paraMap是怎么样定义的,如果是简单的Map paraMap = new HashMap();那前面的String就只能换成Object了. 对整Map的key和value都进行循环,如

  • Java遍历Map对象的四种方式

    关于java中遍历map具体哪四种方式,请看下文详解吧. 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.g

  • Java中map遍历方式的选择问题详解

    1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率.那么实际情况如何呢? 为了解遍历性能的真实差距,包括在遍历key+value.遍历key.遍历value等不同场景下的差异,我试着进行了一些对比测试. 2. 对比测试 一开始只进行了简单的测试,但结果却表明k

  • Java中遍历Map集合的5种方式总结

    方式一 通过Map.keySet使用iterator遍历 @Test public void testHashMap1() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 通过Map.keySet使

  • 详解Java中数组判断元素存在几种方式比较

    1. 通过将数组转换成List,然后使用List中的contains进行判断其是否存在 public static boolean useList(String[] arr,String containValue){ return Arrays.asList(arr).contains(containValue); } 需要注意的是Arrays.asList这个方法中转换的List并不是java.util.ArrayList而是java.util.Arrays.ArrayList,其中java.

  • Java map为什么不能遍历的同时进行增删操作

    目录 foreach循环? HashMap遍历集合并对集合元素进行remove.put.add 1.现象 2.细究底层原理 前段时间,同事在代码中KW扫描的时候出现这样一条: 上面出现这样的原因是在使用foreach对HashMap进行遍历时,同时进行put赋值操作会有问题,异常ConcurrentModificationException. 于是帮同简单的看了一下,印象中集合类在进行遍历时同时进行删除或者添加操作时需要谨慎,一般使用迭代器进行操作. 于是告诉同事,应该使用迭代器Iterator

随机推荐