-
2019-01-07 18:01:00
List<Student> arrayList = new ArrayList<Student>(); for (int i = 1; i < 5; i++) { Student student = new Student(); student.setId(i); arrayList.add(student); } System.err.println(arrayList); Map<Integer, String> map = new HashMap<Integer, String>(); map.put(3, "小王"); map.put(4, "小宋"); map.put(1, "小白"); map.put(2, "小陈"); for (Student student : arrayList) { student.setName(map.get(student.getId())); } System.out.println(arrayList);
打印结果:
[Student [id=1, name=], Student [id=2, name=], Student [id=3, name=], Student [id=4, name=]]
[Student [id=1, name=小白], Student [id=2, name=小陈], Student [id=3, name=小王], Student [id=4, name=小宋]]更多相关内容 -
Map——如何根据key取value,以及不指定key取出所有的value
2018-08-09 18:01:08不知key取map里的value值——用map.keySet() 不知key取map里的value值——用Iterator 迭代 不知key取map里的value值——用map.entrySet() 源码 运行结果 总结 根据key取其value Map&lt;String,...根据key取其value
Map<String, String> map = new HashMap<String, String>(); map.put("b", "4"); map.put("a", "5"); map.put("c", "3"); map.put("d", "5"); // 根据key获取 其value System.out.println("通过key获取 其value"); System.out.println("key 'what'的value为:"+map.get("a")+"\n");
不知key取map里的value值——用map.keySet()
//map.keySet() 先获取map对象的所有key值,再循环遍历获取各个key对应的value; System.out.print("通过 map.keySet() 得到key,然后获取value\n"); for(String key : map.keySet()){ String value = map.get(key); System.out.println(key+" "+value); }
不知key取map里的value值——用Iterator 迭代
//使用迭代器,获取key; System.out.print("通过迭代器,获取key,然后获取value\n"); Iterator<String> iter = map.keySet().iterator(); while(iter.hasNext()){ String key=iter.next(); String value = map.get(key); System.out.println(key+" "+value); }
不知key取map里的value值——用map.entrySet()
//通过map.entrySet()方法 System.out.print("通过map.entrySet()循环map里面的每一对键值对,然后获取key和value\n"); for(Map.Entry<String, String> vo : map.entrySet()){ vo.getKey(); vo.getValue(); System.out.println(vo.getKey()+" "+vo.getValue()); }
源码
public class Maptest { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("b", "4"); map.put("a", "5"); map.put("c", "3"); map.put("d", "5"); // 获取指定 key 的value System.out.println("通过key获取 其value"); System.out.println("key 'what'的value为:"+map.get("a")+"\n"); // 获取map的所有key System.out.print("获取map的所有key\n"); System.out.print("map.keySet():"+map.keySet()+"\n"); //获取map中所有 value System.out.print("获取map中所有 value\n"); System.out.print("map.values():"+ map.values()+"\n"); //通过 map.keySet() 得到key的值,然后获取value; System.out.print("通过 map.keySet() 得到key,然后获取value\n"); for(String key : map.keySet()){ String value = map.get(key); System.out.println(key+" "+value); } //使用迭代器,获取key; System.out.print("通过迭代器,获取key,然后获取value\n"); Iterator<String> iter = map.keySet().iterator(); while(iter.hasNext()){ String key=iter.next(); String value = map.get(key); System.out.println(key+" "+value); } //通过map.entrySet()方法 System.out.print("通过map.entrySet()循环map里面的每一对键值对,然后获取key和value\n"); for(Map.Entry<String, String> vo : map.entrySet()){ vo.getKey(); vo.getValue(); System.out.println(vo.getKey()+" "+vo.getValue()); } } }
运行结果
通过key获取 其value key 'a'的value为:5 获取map的所有key map.keySet():[a, b, c, d] 获取map中所有 value map.values():[5, 4, 3, 5] 通过 map.keySet() 得到key,然后获取value a 5 b 4 c 3 d 5 通过迭代器,获取key,然后获取value a 5 b 4 c 3 d 5 通过map.entrySet()循环map里面的每一对键值对,然后获取key和value a 5 b 4 c 3 d 5
总结
待续
-
记一次根据map中的value取key值的过程
2019-05-16 17:13:22在一次项目中要用到根据当前对象的id查询出当前对象的信息,以及当前对象所在数据库表中根据名称排序后的上一个对象以及下一个对象的id值,即:上一个对象id+当前对象信息+下一个对象id 值 结构如图: 首根据...适用场景: vaue值不重复场景
在一次项目中要用到根据当前对象的id查询出当前对象的信息,以及当前对象所在数据库表中根据名称排序后的上一个对象以及下一个对象的id值,即:上一个对象id+当前对象信息+下一个对象id 值
结构如图:
首根据id查询当前对象的信息直接就能查询出来,之后就是根据当前id查询根据名称排序后之后当前id的前后对象id.
第二步查询对象所在表的全部id形成一个list
然后将遍历list,将每个list的值作为value值存进linkedHashMap中
// 获取对象id list中的数据是从数据库中根据名称排序查询出来的 List<Long> list = rgDevLightExtMapper.selectAllCrossId(); int num = 1; Map<Integer, Long> map = new LinkedHashMap<>(); for (int i = 0; i < list.size(); i++) { map.put(num, llist.get(i)); num++; } // 根据value取key值 Integer key = null; for (Map.Entry<Integer, Long> m : map.entrySet()) { if (m.getValue().equals(当前对象Id)) { key = m.getKey(); } } //根据key值取value值 上一个对象id Long lastId = map.get(key-1); //根据key值取value值 下一个对象id Long nextId = map.get(key+1)
最后再将这两个值一起set进含有当前对象的信息的总对象,然后返回总对象
另外一种方法根据value值取key值
//根据value取key值 public static int getKey(char value)//根据字符得到对应的编码 { int key = 0; Set<Map.Entry<Integer, Character>> set = map.entrySet(); for(Entry<Integer, Character> entry : set){ if(entry.getValue().equals(value)){ key = entry.getKey(); break; } } return key; }
-
Map根据value取key的值,并且当key唯一,但是value重复时,取相应值的一些解决方案
2019-01-15 15:53:54Map是通过键值对来储存数据的(key和value),数据可以根据key映射到它的value; Map<Integer,String> keyAndValue = new LinkedHashMap<>(); keyAndValue.put(1,"重复数据&...Map是通过键值对来储存数据的(key和value),数据可以根据key映射到它的value;
Map<Integer,String> keyAndValue = new LinkedHashMap<>(); keyAndValue.put(1,"重复数据"); keyAndValue.put(2,"重复数据"); keyAndValue.put(3,"重复数据"); keyAndValue.put(4,"特有数据");
- 当要取key对应的值时是比较简单的,通过 get(key)方法就可以取到值,如通过
String value = keyAndValue.get(1)
即可得到key为1时,Map对应的数据,即此时 value的值为 重复数据;
- 当要根据值取key时,就没有上面的直接的方法,而是要经过遍历获取
String valueWanted = "重复数据"; List<Integer> keyList = new ArrayList<>(); for (Map.Entry<Integer,String> keyEntry : keyAndValue.entrySet()) { Integer keyWanted = 0; String getValue = keyEntry.getValue(); if (valueWanted.equals(getValue)){ keyWanted = keyEntry.getKey(); keyList.add(keyWanted); } }
根据此方法则可得到满足条件的key的一个List;
-
当需要满足一定条件的key时,可以在上一方法遍历时的 if 里条件判断加上相应的约束;也可以查找到一个符合条件的key的时候 break 跳出循环,即可限制只返回一个key;
-
思路:当涉及先后操作的时候,可以取不同记录的开始时间来进行比较,以获得想要的数据。
if (nextId.equals(Id)&& actHiActinstStartTime >= hisStartTime){ key = actHiActinstEntry.getKey(); break; }
-
另外,当返回所有满足条件的key的一个集合的时候,也可以调用集合原有的方法来筛选自己想要的数据
Collections.max(keyList); Collections.min(keyList);
如以上两个方法,分别可以获得返回集合的最大值、最小值。
- 当要取key对应的值时是比较简单的,通过 get(key)方法就可以取到值,如通过
-
map 集合取值,根据key 取value, 根据value 取key
2018-05-22 16:33:401,根据指定value 取keyString resultKey;String str = "固定value";Map<String,String> map = new HashMap<String,String>();map.put("key","value");//... -
java中map怎么根据key值修改value值
2021-02-12 14:30:05展开全部java:Map param = new HashMap();param.put("a","3333");System.out.println(param.get("a")); //3333if(param.containsKey("a")){param.put("a", "565");}System.out.println...//565map存值就类似于你往... -
java里面获取map的key和value的方法
2021-02-12 11:43:20获取map的key和value的方法分为两种形式:map.keySet():先获取map的key,然后根据key获取对应的value;map..entrySet():同时查询map的key和value,...注意:当map的value值相等时,根据key值进行排序public class ... -
C++ map 根据value找key、 根据key找value
2019-01-10 17:35:07根据 value找 key 有可能找到多个结果 根据key 找 value 、、、、、、 运行效果: 代码很简单,如下: #include<iostream> #include<map> #include<string>... -
java中的map怎么根据key值修改value值?
2021-02-12 14:13:29展开全部java:Map param = new HashMap();param.put("a","3333");System.out.println(param.get("a")); //3333if(param.containsKey("a")){param.put("a", "565");}System.out.println(param...//565map存值就类e68a... -
Map集合中获取key-value值的方法
2021-04-18 17:30:40当调用put(K key,V value)方法把数据存到Map中后,如何把Map中的key值和value值取出来呢?都有哪几种取值的方法呢?下边就来一一介绍。 一、前置准备 以HashMap为例,先为map中存入几个数据,以便于后边对map的取值... -
Map中已知Key的值,如何改Value的值
2022-02-24 02:57:54直接重新 put 一个相同 key 的就行,value会自动覆盖。 HashMap<Integer,String> hs = new HashMap<Integer, String>(); hs.put(1,"张三"); System.out.println(hs.toString()); hs.put(2,"李四")... -
map集合如何根据key更新value值
2019-11-30 15:42:41心态决定命运 解惑 直接 Map.put(key, value); 就行,如果键已存在,就会用新的值替换掉原先的值 -
如何通过获取map中的key来获得与key对应的value值,进行运算
2020-12-19 02:01:22展开全部获取map的key和value的方法分为以下62616964757a686964616fe4b893e5b19e31333366306439两种形式:1、map.keySet():先获取map的key,然后根据...注意:当map的value值相等时,根据key值进行排序很多人都推荐... -
获取map中的一个value值以及遍历map获得map里所有key、value的值
2021-03-06 05:20:022.向map中放值,注意:map是key-value的形式存放的.如:map.put(”sa”,”dd”);3.从map中取值:String str = map.get(”sa”).toString();结果是:str = ”dd”;4.遍历一个map,从中取得key 和valueMap map = new ... -
go语言中根据map的key值获取value
2018-06-04 08:46:00那么captial就是对应的value值,如果不存在(ok == false), 那么captial就是对应类型的零值,这里就是字符串的零值:"" 转载于:https://my.oschina.net/guiguketang/blog/1823605 -
c++容器map中根据key求得对应value值
2015-05-19 10:23:14value=map[key] -
Map获取key,value的方法
2021-04-22 15:15:27Map<Integer,String>...1.先用keyset()方法获得所有key值,再根据key获取对应value值,map.get(key)方法 for(Integer key : map.keyset()){ map.get(key) System.out.println("key值为:"+key); Syste. -
Vue 循环map对象拿到key值和value值
2020-09-30 16:17:27适用场景: vue中定义的map对象 map : { name : 'xxx' } 接口回显map格式的数据 data :{ key : value} 都可以通过以下方式拿到key和value的值 ...console.log("key名称是:"+key+",key的值是:"+map[key]) } ... -
Java获取map中key和value的方法
2021-04-08 08:08:46最近项目技术转型,开始使用java来写...java中获取map中key和value的方式有两种:map.keySet() : 先获取map中的key,然后根据key获取value。map.entrySet() : 获取map中的key和value,只需查询一次。map.keySet()for... -
c++获取map中的元素,key值和value值
2022-04-14 10:14:09c++获取map中的元素,key值和value值 我需要的是得到map中的key和value,很简单的东西。网上搜出来的都是keyset()方法。 解决: map1->first; map1->second; -
【Java】Map遍历key-value的四种方法
2022-03-20 21:55:09Map遍历key-value的四种方法 (1)先用keySet()取出所有key值,再取出对应value——增强for循环遍历 (2)先用keySet()取出所有key值,再取出对应value——使用迭代器遍历 (3)通过entrySet来获取key-value——增强... -
C++ map通过key获取value
2018-09-15 20:03:49一般是value =map[key],或者另一种迭代器的方式 ...如果map包含key,没有问题,如果map不包含key,使用下标有一个危险的副作用,会在map中插入一个key的元素,value取默认值,返回value。也就是说,map[key]不可能... -
map--已知key取对应value
2017-05-22 11:40:31map 已知key 取值value -
Map根据value值进行分组
2021-03-15 22:35:24今天碰到同事在群里问怎么把一个Map根据value进行分组,当时我的第一想法是将value和key互换,多个value对应的不同key作为集合,代码如下:12MapSataMap=new HashMap<>();final Map> groupMap = new ... -
根据key删除Map集合中的key-value映射
2021-02-12 20:29:56一:在遍历Map时是不可以删除key-value映射的,如果根据key删除,如下:public static void main(String[] args) {Map paramsMap = getMap();deleteKeyError(paramsMap);}private static void deleteKeyError(Map ...