精华内容
下载资源
问答
  • golang 获取map所有key的方式

    万次阅读 2019-06-28 16:16:43
    最佳方式:根据map的长度,新建一个数组,遍历map逐个压入 方法1: func getKeys1(m map[int]int) []int { // 数组默认长度为map长度,后面append时,不需要重新申请内存和拷贝,效率较高 j := 0 keys := make([]...

    最佳方式:根据map的长度,新建一个数组,遍历map逐个压入

    方法1(效率很高):

    func getKeys1(m map[int]int) []int {
    	// 数组默认长度为map长度,后面append时,不需要重新申请内存和拷贝,效率很高
    	j := 0
    	keys := make([]int, len(m))
    	for k := range m {
    		keys[j] = k
    		j++
    	}
    	return keys
    }

    方法2(效率很高):

    func getKeys2(m map[int]int) []int {
    	// 数组默认长度为map长度,后面append时,不需要重新申请内存和拷贝,效率很高
    	keys := make([]int, 0, len(m))
    	for k := range m {
    		keys = append(keys, k)
    	}
    	return keys
    }

    其他方式:

    方法3(效率较低):

    func getKeys3(m map[int]int) []int {
    	// 注意:由于数组默认长度为0,后面append时,需要重新申请内存和拷贝,所以效率较低
    	keys := []int{}
    	for k := range m {
    		keys = append(keys, k)
    	}
    	return keys
    }

    方法4(效率极低):

    func getKeys4(m map[int]int) int {
    	// 注意:虽然此写法简洁,但MapKeys函数内部操作复杂,效率极低
    	keys := reflect.ValueOf(m).MapKeys()
    	return len(keys)
    }

    实验结果如图(可以看到方法1和方法2效率最高,内存操作也最少):

    完整代码如下:

    package test
    
    import (
    	"reflect"
    	"testing"
    )
    
    // 初始化map
    func initMap() map[int]int {
    	m := map[int]int{}
    	for i := 0; i < 10000; i++ {
    		m[i] = i
    	}
    	return m
    }
    
    func getKeys1(m map[int]int) []int {
    	// 数组默认长度为map长度,后面append时,不需要重新申请内存和拷贝,效率较高
    	j := 0
    	keys := make([]int, len(m))
    	for k := range m {
    		keys[j] = k
    		j++
    	}
    	return keys
    }
    
    func getKeys2(m map[int]int) []int {
    	// 数组默认长度为map长度,后面append时,不需要重新申请内存和拷贝,效率较高
    	keys := make([]int, 0, len(m))
    	for k := range m {
    		keys = append(keys, k)
    	}
    	return keys
    }
    
    // 初始化默认
    func getKeys3(m map[int]int) []int {
    	// 注意:由于数组默认长度为0,后面append时,需要重新申请内存和拷贝,所以效率较低
    	keys := []int{}
    	for k := range m {
    		keys = append(keys, k)
    	}
    	return keys
    }
    
    // 使用反射
    func getKeys4(m map[int]int) int {
    	// 注意:虽然此写法简洁,但MapKeys函数内部操作复杂,效率极低
    	keys := reflect.ValueOf(m).MapKeys()
    	return len(keys)
    }
    
    func BenchmarkMapkeys1(b *testing.B) {
    	// 初始化map
    	m := initMap()
    
    	b.ResetTimer()
    	for i := 0; i < b.N; i++ {
    		getKeys1(m)
    	}
    }
    func BenchmarkMapkeys2(b *testing.B) {
    	// 初始化map
    	m := initMap()
    
    	b.ResetTimer()
    	for i := 0; i < b.N; i++ {
    		getKeys2(m)
    	}
    }
    
    func BenchmarkMapkeys3(b *testing.B) {
    	// 初始化map
    	m := initMap()
    
    	b.ResetTimer()
    	for i := 0; i < b.N; i++ {
    		getKeys3(m)
    	}
    }
    
    func BenchmarkMapkeys4(b *testing.B) {
    	// 初始化map
    	m := initMap()
    
    	b.ResetTimer()
    	for i := 0; i < b.N; i++ {
    		getKeys4(m)
    	}
    }
    

     

    展开全文
  • java 获取map中所有key

    万次阅读 2014-11-17 16:29:48
    java 获取map中所有key和value值 java.util.Iterator it = hashmap.entrySet().iterator(); while(it.hasNext()){ java.util.Map.Entry entry = (java.util.Map.Entry)it.next(); entry.getKey() 返回与此项对应...

    java 获取map中所有的key和value值

     
    java.util.Iterator  对 collection 进行迭代的迭代器。

    java.util.Iterator it = map.entrySet().iterator();
    while(it.hasNext()){
          java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
          entry.getKey()      //返回对应的键
          entry.getValue()   //返回对应的值
    }


    以前遍历Map key-value比较习惯的方式是先获取Map中的所有key值,

    然后根据key,依次从Map中去数据,基本方式如下:


    Map<String,String> testData = new HashMap<String, String>();


    Set<String>   keys = testData.keySet();

    for(String key :keys){

               System.out.println(key+" "+testData.get(key));

    }


    上述其中是第一种方法,原来一直用上述方法主要是自己有点懒,有了一种方法后就觉得够用的了,今天看源码,发现还Map接口中还有一个Entry<K,V>的接口,对应的还有一个 Set<Map.Entry<K, V>> entrySet();方法。

    也就是说其实Map中的每条key-value数据对应着一个Entry,这样的话遍历Map其实就是要取出每个Entry,也就有了第二种遍历方法:


    Set<Entry<String, String>>   entries = testData.entrySet();

    for (Entry<String, String> entry : entries) {      

                 System.out.println(entry.getKey()+":"+entry.getValue()); 

    }


    当少量的数据时,上述两种方法的效率是差不多的,当数据比较多时,第二种还是要比第一种快。


    当然上述说的两种遍历针对的情况是遍历出key-value,如果是只想遍历key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V> values()。


    展开全文
  • java获取Map中指定key后的所有元素

    千次阅读 2020-10-12 10:38:49
    需求:给定一个有序的map,已知一个map中存在的key,但是不知道key的指定位置,需要根据这个key获取到这个key元素后的所有元素。 Map<String, String> map = new LinkedHashMap<>(); map.put("qqq","第1...

    需求:给定一个有序的map,已知一个map中存在的key,但是不知道key的指定位置,需要根据这个key获取到这个key元素后的所有元素。

    Map<String, String> map = new LinkedHashMap<>();
    map.put("qqq","第1条");
    map.put("www","第2条");
    map.put("eee","第3条");
    map.put("rrr","第4条");
    map.put("ttt","第5条");
    map.put("yyy","第6条");
    //创建一个新的map存储最新获取的元素
    Map<String, String> codeKeyMap= new LinkedHashMap<>();
    
    final String[] str = {""};
    
    map.forEach((key,value)->{
    	if (key.equals("www")){
    		str[0] = "s";
    	}
    	if (str[0].equals("s")){
    		codeKeyMap.put(key,value);
    	}
    });
    
    
    展开全文
  • JSP页面中获取Map集合的所有Key

    千次阅读 2018-07-25 19:02:15
    集合来封装数据,通常在Jsp页面中获取Map集合的值都是已知的,但是这次不同,这次的Map集合Key值不单单是一个字符串,而是一个实体类集合,需要从List&lt;Map&gt;获取到这个实体类,也就是key值。 ...

    今天在做项目的时候需要使用List<Map>集合来封装数据,通常在Jsp页面中获取Map集合的值都是已知的,但是这次不同,这次的Map集合中的Key值不单单是一个字符串,而是一个实体类集合,需要从List<Map>中获取到这个实体类,也就是key值。

    经过研究,获得的写法如下:

    <c:forEach items="${shopCar }" var="s">
        <!-- 需要遍历Map集合,而本来是List<Map>集合,所以需要第二层循环 -->
    	<c:forEach items="${s }" var="s1">
    		<tr>
    			<td>${s1.key.id}</td>
    			<td>${s1.key.name}</td>
    			<td>${s1.key.price}</td>
    			<td>${s1.value}</td>
    			<td>${s1.value * s1.key.price}</td>
    		</tr>
    	</c:forEach>
    </c:forEach>

    主要是用到List<Map>中的Map集合的map.key获取值

    ${map.key}获得Key值

    ${map.key.name} 由于key值是实体类,所以可以获得实体类中的name属性。

    ${map.value}获得Value值。

    作者:林子淳

    展开全文
  • java获取map中key

    千次阅读 2019-11-23 08:53:27
    java 获取map中key值 public static String getKeySet(Map map){ List<String> list= new ArrayList<>(); Set set = map.keySet(); Iterator it = set.iterator(); while(it.hasNext()){ list....
  • java 获取map所有key及value

    千次阅读 2019-07-17 15:35:25
    //获取所有key的Set集合 Set<String> rowKey = map.keySet(); //开始迭代key集合 Iterator<String> it = rowKey.iterator(); while (it.hasNext()) { String key = it.next(); //根...
  • result.map是我的map集合,从后台获取key是k result.map[key]是V $("#count").text(result.map[key]);是我把V赋值给了我的html的一个标签的值 for (var key in result.map) { if(key=="重点挂账整治...
  • java.util.Iterator it = hashmap.entrySet().iterator();...java.util.Map.Entry entry = (java.util.Map.Entry)it.next(); entry.getKey() 返回与此项对应的键 entry.getValue() 返回与此项对应的值 } 更多关...
  • js 获取map对象key,value

    万次阅读 2017-07-13 17:44:39
    var mapObject = { id1001: '小明', id1002: '小花' } 获取id是‘id001’对应的值: ...for(var key in mapObject){ var value = mapObject[ key ]; //注意是 [ ] alert(value); //依次弹出小明、小花 }
  • java 获取 Map中所有key 和 value 值

    千次阅读 2014-04-03 19:02:29
    for(Student s : m.get(key)){ // 获取value 值,Collection (Student) System.out.println(s); } } /* 输出结果: 班级:1班 学生:小明 学生:小红 学生:小光 班级:2班...
  • java分别获取map中key和value

    千次阅读 2018-06-12 15:59:12
    获取mapkey和value的方法分为两种形式:map.keySet():先获取mapkey,然后根据key获取对应的value;map..entrySet():同时查询map的key和value,只需要查询一次;两者的性能比较可以查看map.keySet()和map....
  • 有时候需要简单地把一个Map中所有key和value获取出来,拼到sql语句中。MyBatis提供的一种方法是遍历Map中的entrySet,然后把key扔进index里面,value扔进item中。具体的一个使用的例子如下: INSERT INTO ...
  • 2.向map中放值,注意:mapkey-value的形式存放的.如:map.put(”sa”,”dd”);3.从map中取值:String str = map.get(”sa”).toString();结果是:str = ”dd”;4.遍历一个map,从中取得key 和valueMap map = new HashM...
  • mybatis获取map中key和value

    千次阅读 2019-09-17 17:31:50
    低版本mybatis <foreach collection="mapInfo.entrySet()" item="item" index="index" separator=",">... ${item.key} = VALUES ( #{item.value} ) </foreach> 高版本 <foreach collect...
  • 前端: <c:forEach items="map" var="m"> ${m.key} ${m.value} </c:forEach> 后端: Map<T,K> map = new ... modelMap.addAttribute("map",map);
  • js 访问Map对象中所有key和value

    万次阅读 2017-05-27 17:30:00
    在js访问Map对象中所有key和value的值 在网上找了下,大部分都说用如下方法,但是我试了试不行 for(key in map) { alert(key +map[key]); } 最终使用如下方法成功实现访问Map对象中所有key和value的值 ...
  • 获取Map中Key和Value的值

    千次阅读 2020-04-03 16:59:31
    在日常编码,我们经常会用到Map和HashMap来处理数据,今天我遇到了一个关于获取Map中key的问题,在这给大家分享一下: 业务场景: //将Map放入list List<Map<String, String>> ListMap = new ...
  • vue获取map集合key、value值

    万次阅读 2020-09-01 15:00:00
    背景:前端接收后端返回的list集合,并将该集合展示在页面。...方案一,直接在HTML代码使用v-for、Object.key、Object.value来渲染页面 <template> <div v-for="map in _list"> <u
  • c++获取map中的元素,key值和value值

    千次阅读 2021-03-05 18:50:00
    c++获取map中的元素,key值和value值 我需要的是得到mapkey和value,很简单的东西。网上搜出来的都是keyset()方法。 解决: map1->first; map1->second;
  • 的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值。然而,有的时候我们需要反过来获取,知道Value值,求Key值。 本文将用实例介绍四种方法,通过传入Value值,获取得到Key值。 2 四种方法 2.1 循环法 ...
  • scala中获取Map中key和value的方法

    千次阅读 2017-07-14 16:23:00
    val scores=Map("Alice"->10,"Bob"->3,"Cindy"->...// 获取所有key val nameList=scores.map(_._1) // map 函数返回List println(nameList.getClass) 遍历list的元素 nameList.foreac...
  • 获取Map中最大(小)的key

    千次阅读 2018-08-15 14:04:43
    将Mapkey存放至set集合,... * 获取map中最大的key * @param map * @return */ public static Integer getMaxKey(Map&lt;Integer, List&lt;User&gt;&gt; map) { if (map == null){...
  • java获取map里面的key和value值

    千次阅读 2017-03-20 10:46:36
    map 获取key 和 value
  • map中获取key出现空指针

    千次阅读 2019-08-21 22:38:26
    今天翻到一篇博客,讲的是map获取不存在的key时报空指针的问题,当看到这个博客后才算是解决了自己之前的疑虑,当时场景是做一个查询,获取map中的结果,赋值给定义的字段,但是莫名的就报了空指针,想半天感觉不...
  • 在JavaScript中获取Map集合中的key和value值(前提是:既不知道key为什么值,也不知道value有哪些值) Map>  //遍历map集合 获取value值相关信息 for(var k in map){ //通过定义一个局部变量k遍历获取到了map...
  • Java:获取mapkey和value

    万次阅读 2019-02-13 16:39:02
    工作经常需要对map进行循环操作,免不了需要获取key和value。 获取key和value大概有三种方式 1.直接获取key,然后通过key查找得到value for (String key : map.keySet()) { String value = map.get(key); ...
  • Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key public static String getUrlWithQueryString...
  • var map = new Map(); //设值 map.set("A","aaaa"); map.set("B","bbbb"); map.set("C","cccc"); map.set("D","dddd"); console.log(map) //结果 // 0: {"A" => "aaaa"} // 1: {"B" => "bbbb"} // 2: {"C" =&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 476,207
精华内容 190,482
关键字:

获取map中所有的key