精华内容
下载资源
问答
  • Map集合循环遍历的几种方式

    万次阅读 多人点赞 2018-01-21 22:37:06
    package cn.jdbc.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; ...* Map 集合的循环遍历 * @data 2018.1.21 * */ public class TestMap { ...

    package cn.jdbc.test;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;

    /**
     * Map 集合的循环遍历
     * @data 2018.1.21
     *
     */
    public class TestMap {

             public static void main(String[] args) {
                  Map<String, Object> map = new HashMap<String, Object>();
                  map.put("aaa", 111);
                  map.put("bbb", 222);
                  map.put("ccc", 333);
                  map.put("ddd", 444);
                  //Map集合循环遍历方式一  
                 System.out.println("第一种:通过Map.keySet()遍历key和value:");
                for(String key:map.keySet()){//keySet获取map集合key的集合  然后在遍历key即可
                    String value = map.get(key).toString();//
                    System.out.println("key:"+key+" vlaue:"+value);
                }

               //Map集合循环遍历二  通过迭代器的方式
               System.out.println("第二种:通过Map.entrySet使用iterator遍历key和value:");
               Iterator<Entry<String, Object>> it = map.entrySet().iterator();
               while(it.hasNext()){
                    Entry<String, Object> entry = it.next();
                    System.out.println("key:"+entry.getKey()+"  key:"+entry.getValue());
              }

             // Map集合循环遍历方式三 推荐,尤其是容量大时
            System.out.println("第三种:通过Map.entrySet遍历key和value");
            for (Map.Entry<String, Object> m : map.entrySet()) {
            System.out.println("key:" + m.getKey() + " value:" + m.getValue());
        }

             // 第四种:
             System.out.println("第四种:通过Map.values()遍历所有的value,但不能遍历key");
            for(Object m:map.values()){
              System.out.println(m);
            }
       }
    }

    展开全文
  • Map集合中value()与keySet()、entrySet()区别

    万次阅读 多人点赞 2019-07-31 18:36:36
    Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的...

    在Map集合中

    values():方法是获取集合中的所有的值----没有键,没有对应关系,

    KeySet():
    将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key 

    entrySet():

     

    Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图。 Map.Entry表示映射关系。entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口 。

     

     

     

    下面通过例子看看:

    Map<String,String> map = new HashMap<String,String>();
    map.put("01", "zhangsan");
    map.put("02", "lisi");
    map.put("03", "wangwu");

    Collection<String> collection = map.values();//返回值是个值的Collection集合
    System.out.println(collection);
    打印结果:
    [zhangsan, lisi, wangwu]


    Set<K> keySet() //返回值是个只存放key值的Set集合(集合中无序存放的)

    Set<Map.Entry<K,V>> entrySet() //返回映射所包含的映射关系的Set集合(一个关系就是一个键-值对),就是把(key-value)作为一个整体一对一对地存放到Set集合当中的。



    一. keySet()方式。

    Map<String,String> map = new HashMap<String,String>();
                    
            map.put("01", "zhangsan");
            map.put("02", "lisi");
            map.put("03", "wangwu");
                    
                    
            Set<String> keySet = map.keySet();//先获取map集合的所有键的Set集合

            Iterator<String> it = keySet.iterator();//有了Set集合,就可以获取其迭代器。
                    
            while(it.hasNext()){
                    String key = it.next();
                    String value = map.get(key);//有了键可以通过map集合的get方法获取其对应的值。
                            
                    System.out.println("key: "+key+"-->value: "+value);//获得key和value值
                    }

    二. entrySet()方式:
    Map<String,String> map = new HashMap<String,String>();
                    
    map.put("01", "zhangsan");
    map.put("02", "lisi");
    map.put("03", "wangwu");

    //通过entrySet()方法将map集合中的映射关系取出(这个关系就是Map.Entry类型)
    Set<Map.Entry<String, String>> entrySet = map.entrySet();

    //将关系集合entrySet进行迭代,存放到迭代器中                
    Iterator<Map.Entry<String, String>> it2 = entrySet.iterator();
                    
    while(it2.hasNext()){
            Map.Entry<String, String> me = it2.next();//获取Map.Entry关系对象me
            String key2 = me.getKey();//通过关系对象获取key
            String value2 = me.getValue();//通过关系对象获取value
                            
            System.out.println("key: "+key2+"-->value: "+value2);
    }

    虽然使用keyset及entryset来进行遍历能取得相同的结果
    但两者的遍历速度是有差别的

    keySet():迭代后只能通过get()取key 
    entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口 

    说明:keySet()的速度比entrySet()慢了很多,也就是keySet方式遍历Map的性能不如entrySet性能好
    为了提高性能,以后多考虑用entrySet()方式来进行遍历。

    展开全文
  • Map集合

    千次阅读 2015-04-13 19:28:49
    Map集合

    Map集合

    该集合存储键值对,一对一对的往里存,而且要保证键的唯一性。

    HashTable:底层数据结构是哈希表,不可以存入NULL键NULL值。该集合是线程同步的。效率低

    HashMap:底层是哈希表数据结构,允许使用NULL键NULL值,该集合是不同步的。效率高

    TreeMap:底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进行排序。

    其实Set集合底层就是使用Map集合

    import java.util.*;
    class MapDemo 
    {
    	public static void main(String[] args) 
    	{
    		Map<String,String> map=new HashMap<String,String>();
    
    		//添加元素
    		map.put("01","zhangsan1");
    		map.put("02","zhangsan2");
    		map.put("03","zhangsan3");
    
    		System.out.println("containsKey:"+map.containsKey("02"));
    		//System.out.println("remove:"+map.remove("02"));
    		System.out.println("get:"+map.get("02"));
    		map.put("04",null);
    		System.out.println("get:"+map.get("04"));
    
    		//获取map集合中所有的值
    		Collection<String> coll = map.values();
    
    		System.out.println(coll);
    
    		System.out.println(map);
    	}
    }
    

    map集合的两种取出方式:

    1、keySet:将map中的所有的键存入到Set集合中,因为Set具备迭代器。所有可以迭代的方式取出所有的键,再根据get方法。获得每一个键对应的值。

    		Map<String,String> map=new HashMap<String,String>();
    
    		map.put("01","zhangsan1");
    		map.put("02","zhangsan2");
    		map.put("03","zhangsan3");
    		map.put("04","zhangsan4");
    
    		/* 
    		//先获取map集合的所有键的set集合,keySet();
    		Set<String> keySet=map.keySet();
    		//有了Set集合,就可以获取其迭代器。
    		Iterator<String> it=keySet.iterator();
    
    		while(it.hasNext())
    		{
    			String key=it.next();
    			//有了键就可以通过map集合的get方法获取其对应的值
    			String value=map.get(key);
    			System.out.println("key:"+key+",value:"+value);
    		}
    2、Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了Set集合中,而这个关系的数据类型就是MapEntry。

    Map.Entry其实Entry也是一个接口,它是Map接口中的一个内部接口。

    //将Map集合中的映射关系取出。存入到Set集合中。
    		Set<Map.Entry<String,String>> entrySet=map.entrySet();
    
    		Iterator<Map.Entry<String,String>> it=entrySet.iterator();
    
    		while(it.hasNext())
    		{
    			Map.Entry<String,String> me=it.next();
    			String key=me.getKey();
    			String value=me.getValue();
    			System.out.println(key+":"+value);
    		}




    展开全文
  • map集合

    2013-01-15 20:46:57
    map集合简介  stl 和 util 都提供了 map 集合,关于 map 集合,类似的概念有: 散列表:《算法导论》中看到的,通过哈希函数将关键字映射到一个表(数组)中,检索速度很快。关联数组:《编程珠玑II》中看到的...

    map集合简介

      stl 和 util 都提供了 map 集合,关于 map 集合,类似的概念有:

    • 散列表:《算法导论》中看到的,通过哈希函数将关键字映射到一个表(数组)中,检索速度很快。
    • 关联数组:《编程珠玑II》中看到的,普通数组是通过整型下标来索引的,而关联数组则可用字符串或其他类型来索引。

      总之,map 集合是一个存储着多个 键——值 对的集合。

      stl 中的 map 可当做关联数组来用:

    #include <iostream>
    #include <map>
    #include <string>
    using namespace std;
    
    int main()
    {
        map<string, int> grades;
    
        grades["李雷"] = 90;
        grades["韩梅梅"] = 95;
        grades["邻居家的孩子"] = 100;
    
        cout<<grades["邻居家的孩子"]<<endl;
    
        return 0;
    }

    java中的map集合

      java 中主要有两个 map 集合:HashMap、TreeMap:

    • HashMap 是利用关键字的 hashCode 函数返回的哈希值来做映射的。HashMap 通过链接法解决碰撞,也就是说如果两个 键——值对 哈希映射到一个槽的时候,就都添加到那个槽的链表中,这样处理过于简单,但一般情况下索引的复杂度是O(1)。
    • TreeMap 是利用关键字建立一棵红黑树,索引复杂度是O(lg n),而且是按照关键字有序的:有提供 lowerKey、higherKey 这样的函数,而 HashMap 是无序的。

    map的一个应用

      map 集合比较复杂,我也从来没有实现过,不过既然知道有人实现好了,那我们也就不用客气了O(∩_∩)O

      检测一个集合是否包含另一个集合的所有元素是一个比较纠结的问题,我们立刻能想出一个 O(n^2) 的算法:

    // A 是否包含 B 的所有元素
    boolean containsAll(int[] A, int[] B) {
        for (int b : B) {
            boolean in = false; // A是否包含b?
    
            for (int a : A)
                if (a == b) {
                    in = true;
                    break;
                }
    
            if (!in)
                return false;
        }
        return true;
    }

      考虑到我们有了 map 集合,map 集合能很快地查找一个关键字(HashMap是O(1),TreeMap是O(lg n),都比遍历查找的O(n)要好很多),于是我们可以写出如下算法:

    // A 是否包含 B 的所有元素, 算法中用到了 map 集合
    boolean containsAll_useMap(int[] A, int[] B) {
        Object exist = new Object();// 标志存在的对象
        Map<Integer, Object> Amap = new HashMap<Integer, Object>();
        for (int a : A)
            Amap.put(a, exist);
    
        for (int b : B)
            // A中存在的元素, get会返回exist, 不存在的返回 null
            if (Amap.get(b) == null)
                return false;
    
        return true;
    }

      这个算法在不刻意刁难的情况下复杂度是 O(n)。

    展开全文
  • JAVA Map集合转String,String转Map集合 当前两个转换方法主要用作支付宝,微信支付额外参数转换 先看效果是不是诸君想要的 map转string的值 id=1&amp;amp;amp;amp;name=哆啦A梦丶幻想 string转...
  • Map集合map集合转成set的方法
  • java.util.Map——Map集合的常用方法

    万次阅读 多人点赞 2018-05-07 12:53:20
    开发中最常用的就是List集合和Map集合Map集合是基于java核心类——java.util中的;Map集合用于储存元素对,Map储存的是一对键值(key和value),是通过key映射到它的value;下面介绍的是Map集合的一些经常用到的...
  • Java遍历取出Map集合key-value数据的4种方法

    万次阅读 多人点赞 2018-01-13 00:39:15
    map集合存数据与取出数据全部放在一个类MapTest中,方便阅读与查看随便创建一个包,在包中新建一个class文件,(也可以不建包,直接新建一个class文件)新建class文件MapTest.java,代码如下:import java.util....
  • Java中的Map集合以及Map集合遍历实例

    千次阅读 2018-11-06 09:19:25
    Map集合 Map&amp;amp;amp;lt;K,V&amp;amp;amp;gt;k是键,v是值 1、 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射的一个值 2、 实现类  a) HashMap  b) TreeMap 3、 Map集合和...
  • Map 集合的遍历与 List 和 Set 集合不同。Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历。Map 以及实现 Map 的接口类(如 HashMap、TreeMap、LinkedHashMap、Hashtable 等)都...
  • /json字符串转成map集合 private Map<String, Object> getMapFromJson(String message) { // TODO Auto-generated method stub Map<String, Object> mapList = JSON.parseObject(message)...
  • 有序的Map集合

    万次阅读 2019-06-22 08:32:07
    我们通常使用的Map集合是HashMap,在大多数情况下HashMap可以满足我们的要求,但是HashMap有一个缺点:HashMap是无序的,即其迭代顺序与其key或value的大小无关。而在某些情况下,如果我们需要Map集合里的元素有序,...
  • 常用的Map集合

    千次阅读 2019-05-22 21:12:22
    Map集合Map集合常用方法增加删除判断获取Map集合中TreeSet的应用Map集合中HashSet的应用 Map集合常用方法 Map集合和Collection集合的区别 Map集合是有Key和Value的,Collection集合是只有Value。 Collection集合底层...
  • Map集合打印方法

    千次阅读 2020-06-14 23:11:20
    //keySet()实现遍历Map集合方法一 1 使用Map集合中的方法KeySet(),把Map集合所有的Key 取出来 ,存储到一个Set集合中 2 遍历Set集合,获取Map集合中的每一个Key值 3 通过Map集合的get(Key),通过Key找到value ...
  • 这是工具类中的代码 package com.demo.utils; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Map; ... * 给map集合中的key实现字...
  • Javascript遍历map集合以及map对象

    万次阅读 2017-07-22 00:14:21
    在遍历map的时候发现了,map对象和map集合的遍历是有很大的不同。map集合是无序的,并且主键是唯一的。集合中的键和值可以是任何类型。如果使用现有密钥向集合添加值,则新值会替换旧值。 遍历map对象 var map = [{...
  • kotlin的Map集合

    千次阅读 2019-09-04 13:49:39
    kotlin的Map集合只读Map可变的MapmutableMapOf kotlin的Map分为: 只读Map。 可变的MutableMap(MutableMap、HashMap、LinkedHashMap)。 只读Map 意味着我们创建出来的map是不可变的,即我们只能使用无法改变我们...
  • map集合多种遍历

    千次阅读 2021-01-23 10:42:24
    Map集合的四种遍历方式 Map集合的四种遍历方式 //创建数组通过for添加数据到数组 public static void main(String[] args) { String[] str = { "111", "222", "333", "444" }; Map<Integer, String> ...
  • Java基础 Map集合

    千次阅读 2019-07-05 22:04:41
    Map集合 教学目标 能够说出Map集合特点 使用Map集合添加方法保存数据 使用”键找值”的方式遍历Map集合 使用”键值对”的方式遍历Map集合 能够使用HashMap存储自定义键值对的数据 能够使用HashMap编写斗地主洗牌发牌...
  • Java list集合转换Map集合 在我们平常处理数据的时候,常常需要将list集合转换为Map集合,其中的key可以是list集合元素对象中的某个唯一属性,以此作为key,对象作为value,方便后续处理的时候,对于相同key的对象...
  • Map集合总结

    千次阅读 2018-04-23 21:19:31
    Map继承树Map集合的key和value都可以是任何引用类型的数据。Map集合的key不允许重复,value允许重复。key和value之间存在单向一对一关系,即通过指定的键可以找到唯一,确定的value。Map集合中获取数据时,只要给出...
  • java中的Map集合

    万次阅读 多人点赞 2018-11-06 18:13:40
    什么是Map集合? Map用于保存具有映射关系的数据,Map集合里保存着两组值,一组用于保存Map的ley,另一组保存着Map的value。 图解 map集合的作用 和查字典类似,通过key找到对应的value,通过页数找到对应的...
  • Java Map集合

    千次阅读 2019-02-07 10:00:39
    Map集合用于保存映射关系的数据,Map集合中保存了两组值,一组是 key, 一组是 value。 Map的key不能重复。 key和value之间存在单向一对一的关系, 通过key,能找到唯一的,确定的value。 HashMap和Hashtable是Map...
  • Java集合map 集合使用

    万次阅读 2017-12-12 12:28:25
    Java集合中的四种遍历方式: ... import java.util.HashMap; import java.util.Iterator; import java.util.Map;... * Map集合的四种运用方法 * @author MrYang */ public class MapDemo { public static v
  • 1.调用这个方法BeanMapUtils.mapToBean(),实现map集合转实体类对象; 注意:这个方法转换时我这边老是报类型转换错误,引用这段代码没有报错的小伙伴可继续使用,此方法扩展性好,报错的小伙伴请看最下面的一个map转实体...
  • JAVA中的Map集合

    千次阅读 2021-03-26 23:53:05
    JAVA中的Map集合 1.Map简介 java.util.map接口 1.Map称为查找表,该数据结构的样子是一个“多行两列”的表格,左列为key,右列为value,Map总是根据key查找相对的value,存储元素也要求以key-vaule成对存入。 2.常见...
  • Map集合和List集合总结

    千次阅读 2019-05-27 17:32:15
    Map集合和List集合哪个效率更高 List接口 List集合是一个元素有序(存储有序)、可重复的集合,集合中的每个元素都有对应的索引,以便于查询和修改,List集合是允许存储null值的。 List集合可重复原因,请看源码: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,100
精华内容 24,840
关键字:

map集合