精华内容
下载资源
问答
  • rsredis中通过redisTemplate存放后再修改map值,遍历Map,同时得到map里面value对象的属性值 代码(分为三个测试): @Autowired private RedisTemplate redisTemplate; @Test public void test03(){ Map<String, ...

    redis中通过redisTemplate存放后再修改map值,遍历Map,同时得到map里面value对象的属性值

    代码(分为三个测试):

    @Autowired
    private RedisTemplate redisTemplate;
    @Test
        public void test03(){
            Map<String, Object> map = new HashMap();
            map.put("123","商品1");
            map.put("124","商品2");
            map.put("125","商品3");
            Store store = new Store();
            store.setBusinessLicense("测试商品1");
            map.put("126",store);
            redisTemplate.opsForValue().set("1",map);
    
            Map<String, Object> o = (Map)redisTemplate.opsForValue().get("1");
    
            for (Map.Entry<String, Object> entry : o.entrySet()) {
                String mapKey = entry.getKey();
                Object mapValue = entry.getValue();
                System.out.println("key= "+mapKey+" ,value= "+mapValue);
            }
    
            System.out.println("~~~~~~~~~~~~~~~~~~~~~~测试一结束(遍历redis存放的map)~~~~~~~~~~~~~~~~~~~~~~~~");
    
            Map<String, Object> map1 = new HashMap();
            map1.put("123","商品1");
            map1.put("124","商品2");
            map1.put("125","商品4");
            map1.put("126","商品5");
            Store store1 = new Store();
            store1.setBusinessLicense("测试商品2");
            map1.put("136",store1);
            redisTemplate.opsForValue().set("1",map1,10, TimeUnit.MINUTES);
    
            Map<String, Object> k = (Map)redisTemplate.opsForValue().get("1");
    
            for (Map.Entry<String, Object> entry : k.entrySet()) {
                String mapKey = entry.getKey();
                Object mapValue = entry.getValue();
                System.out.println("key= "+mapKey+" ,value= "+mapValue);
            }
    
            System.out.println("~~~~~~~~~~~~~~~~~~~~~~测试二结束(修改redis里面的map)~~~~~~~~~~~~~~~~~~~~~~~~");
    
            Map<String, Object> m = (Map)redisTemplate.opsForValue().get("1");
            JSONObject jsonObject =  (JSONObject)m.get("136");
            Store s = JSONObject.toJavaObject(jsonObject, Store.class);
            System.out.println(s.getBusinessLicense());
    
            System.out.println("~~~~~~~~~~~~~~~~~~~~~~测试三结束(取map里面存放的map对象的一个属性值)~~~~~~~~~~~~~~~~~~~~~~~~");
        }
    
    展开全文
  • List<Map>遍历修改map值

    千次阅读 2018-12-04 16:11:09
     list2 覆盖 list1 对应的, 无对应时默认list的,(list1.size()大于list2,只是counts 不同)  list1 [{levels=1, counts=0}, {levels=2, counts=0}, {levels=3, counts=0}]  list2 [{levels=1, counts=2...

    有个小需求:

            list2 覆盖 list1 对应的值, 无对应时默认list的值,(list1.size()大于list2,只是counts 值不同)
            list1 [{levels=1, counts=0}, {levels=2, counts=0}, {levels=3, counts=0}]
            list2 [{levels=1, counts=2}, {levels=3, counts=12}]
            结果: list1 [{levels=1, counts=2}, {levels=2, counts=0}, {levels=3, counts=12}]

     

    	@Test
    	public void test2() {
    		//模拟数据
    		List<Map<String, Object>> historyList = new ArrayList<Map<String,Object>>();
    		for(int i = 0; i < 3; i++) {
    			Map<String, Object> tempMap = new HashMap<>();
    			tempMap.put("levels", String.valueOf(i+1));
    			tempMap.put("counts", "0");
    			historyList.add(tempMap);
    		}
    		System.out.println("historyList: "+ historyList.toString()); 
    		
    		List<Map<String, Object>> tempList = new ArrayList<Map<String,Object>>();
    		for(int i = 0; i < 2; i++) {
    			Map<String, Object> tempMap = new HashMap<>();
    			tempMap.put("levels", String.valueOf(i+1));
    			tempMap.put("counts", i+5);
    			tempList.add(tempMap);
    		}
    		//修改值
    		if(tempList.size() > 0) {
    			for (Map<String, Object> map : historyList) {
    				String key = String.valueOf(map.get("levels"));
    				String value = String.valueOf(map.get("counts"));
    				for (Map<String, Object> tempmap : tempList) {
    					String tempkey = String.valueOf(tempmap.get("levels"));
    					String tempvalue = String.valueOf(tempmap.get("counts"));
    					if(tempkey.equals(key)) {
    						value = tempvalue;
    						break;
    					}
    				}
    				map.put("counts", value);
    			}
    			int upcount = 0;
    			for (Map<String, Object> map : tempList) {
    				upcount += Integer.parseInt(String.valueOf(map.get("counts")));
    			}
    			System.out.println(upcount);
    		}
    		System.out.println("tempList: "+ tempList.toString()); 
    		System.out.println("historyList: "+ historyList.toString()); 
    	}

          

        结果:

         

     

     

     

     

     

    展开全文
  • #include "stdafx.h" #include <...以上代码理论上在第二个for_each的时候会改变map,但是小弟这里测试发现没有被改变。 请问是因为我这个匿名函数的引用方式有问题么?该如何处理,请大家指正?
  • 网上都是getParameterMap取到的数据不能修改 但是我继承HttpServletRequestWrapper的类竟然修改成功了 看代码: [code="java"] package com.uniresource.framework.security; import java.util....
    网上都是getParameterMap取到的数据不能修改  但是我继承HttpServletRequestWrapper的类竟然修改成功了
    看代码:

    package com.uniresource.framework.security;

    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletRequestWrapper;

    import org.springframework.web.util.HtmlUtils;

    public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
    public XssHttpServletRequestWrapper(HttpServletRequest servletRequest) {
    super(servletRequest);
    }
    public String[] getParameterValues(String parameter) {
    String[] values = super.getParameterValues(parameter);
    if (values==null) {
    return null;
    }
    int count = values.length;
    String[] encodedValues = new String[count];
    for (int i = 0; i < count; i++) {
    encodedValues[i] = cleanXSS(values[i]);
    }
    return encodedValues;
    }
    public String getParameter(String parameter) {
    String value = super.getParameter(parameter);
    if (value == null) {
    return null;
    }
    return cleanXSS(value);
    }

    @Override
    public Map getParameterMap() {
    Map map=super.getParameterMap();
    Set set=map.keySet();
    Iterator iter=set.iterator();
    while(iter.hasNext()){
    String key=iter.next().toString();
    Object obj=map.get(key);
    String[] param=(String[])obj;
    //String[] newParam=new String[param.length];
    for(int i=0;i<param.length;i++){
    String s=param[i];
    param[i]=HtmlUtils.htmlEscape(s);
    //newParam[i]=HtmlUtils.htmlEscape(s);
    }
    //map.put(key, newParam);
    }
    /*for(int i=0;i<map.size();i++){
    Object obj=map.get(i);
    if(obj instanceof String){
    System.out.println(obj.toString());
    }
    }*/
    return map;
    }
    public String getHeader(String name) {
    String value = super.getHeader(name);
    if (value == null)
    return null;
    return cleanXSS(value);
    }
    private String cleanXSS(String value) {
    //You'll need to remove the spaces from the html entities below
    value = value.replaceAll("<", "& lt;").replaceAll(">", "& gt;");
    value = value.replaceAll("\\(", "& #40;").replaceAll("\\)", "& #41;");
    value = value.replaceAll("'", "& #39;");
    value = value.replaceAll("eval\\((.*)\\)", "");
    value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\"");
    value = value.replaceAll("script", "script");
    value = HtmlUtils.htmlEscape(value);
    return value;
    }

    }


    所以就去查看了下org.apache.catalina.util.ParameterMap的源码 原来我的tomcat中这个类的locked是非锁定的。还是说现在的tomcat这个值都是非锁定状态的。
    /*     */ package org.apache.catalina.util;
    /* */
    /* */ import java.util.HashMap;
    /* */ import java.util.Map;
    /* */ import org.apache.tomcat.util.res.StringManager;
    /* */
    /* */ public final class ParameterMap<K, V> extends HashMap<K, V>
    /* */ {
    /* */ private static final long serialVersionUID = 1L;
    /* 101 */ private boolean locked = false;
    /* */
    /* 129 */ private static final StringManager sm = StringManager.getManager("org.apache.catalina.util");
    /* */
    /* */ public ParameterMap()
    /* */ {
    /* */ }
    /* */
    /* */ public ParameterMap(int initialCapacity)
    /* */ {
    /* 64 */ super(initialCapacity);
    /* */ }
    /* */
    /* */ public ParameterMap(int initialCapacity, float loadFactor)
    /* */ {
    /* 78 */ super(initialCapacity, loadFactor);
    /* */ }
    /* */
    /* */ public ParameterMap(Map<K, V> map)
    /* */ {
    /* 90 */ super(map);
    /* */ }
    /* */
    /* */ public boolean isLocked()
    /* */ {
    /* 109 */ return this.locked;
    /* */ }
    /* */
    /* */ public void setLocked(boolean locked)
    /* */ {
    /* 121 */ this.locked = locked;
    /* */ }
    /* */
    /* */ public void clear()
    /* */ {
    /* 145 */ if (this.locked) {
    /* 146 */ throw new IllegalStateException(sm.getString("parameterMap.locked"));
    /* */ }
    /* 148 */ super.clear();
    /* */ }
    /* */
    /* */ public V put(K key, V value)
    /* */ {
    /* 169 */ if (this.locked) {
    /* 170 */ throw new IllegalStateException(sm.getString("parameterMap.locked"));
    /* */ }
    /* 172 */ return super.put(key, value);
    /* */ }
    /* */
    /* */ public void putAll(Map<? extends K, ? extends V> map)
    /* */ {
    /* 189 */ if (this.locked) {
    /* 190 */ throw new IllegalStateException(sm.getString("parameterMap.locked"));
    /* */ }
    /* 192 */ super.putAll(map);
    /* */ }
    /* */
    /* */ public V remove(Object key)
    /* */ {
    /* 210 */ if (this.locked) {
    /* 211 */ throw new IllegalStateException(sm.getString("parameterMap.locked"));
    /* */ }
    /* 213 */ return super.remove(key);
    /* */ }
    /* */ }

    /* Location: E:\apache-tomcat-7.0.30\lib\catalina.jar
    * Qualified Name: org.apache.catalina.util.ParameterMap
    * Java Class Version: 6 (50.0)
    * JD-Core Version: 0.5.3
    */
    展开全文
  • map修改key

    千次阅读 2019-10-28 17:02:08
    map是无法直接修改key的,所以要采用其他的方案,新增一个键值对,再删除之前那个要修改map要使用ConcurrentHashMap,不然会抛.ConcurrentModificationException异常,然后采用迭代器的方式遍历,不能用for循环...

    map是无法直接修改key值的,所以要采用其他的方案,新增一个键值对,再删除之前那个要修改的
    map要使用ConcurrentHashMap,不然会抛.ConcurrentModificationException异常,然后采用迭代器的方式遍历,不能用for循环,不然也会抛ConcurrentModificationException异常,然后在迭代中it.remove(),map.put();就可以了

    展开全文
  • java 修改Map

    千次阅读 2019-08-19 20:40:21
    //查询得到的Map<String,Object>集合 List<Map<String,Object>> deptList = indoorCompareServices....通过put()修改某个键的 详细: http://yayihouse.com/yayishuwu/chapter/2099 ...
  • 展开全部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就类似于你往...
  • Golang遍历map的同时并发修改map

    千次阅读 2020-03-15 14:07:55
    如题,有个逻辑设计,在遍历map的同时需要并发的修改map 解决 先说下解决,那就是把map重新复制一份,不是同一个map自然也就不存在并发安全和死锁的问题了,但是因为不是同一个map了,自然是需要注意数据还是否...
  • Map集合用于储存元素对,Map储存的是一对键值(key和value),是通过key映射到它的valuevalues(): 是获取集合中的所有的----没有键,没有对应关系。KeySet(): 将Map中所有的键存入到set集合中。因为set具备迭代器。...
  • 修改map中的

    千次阅读 2017-06-01 16:52:38
    因项目要求,将map中的所有null,改成空值""。 代码很简单~ 主要是这里map.ketSet()去 获得所有的key集合 Set s =map.keySet(); for(String str : s){ if(map.get(str).equals("null")){ map....
  • //我在这里改变了MAP correctContractMap.put("trade_contract","15122"); } private void updataDataBase() { Map corMap = new HashMap(); corMap.put("main_contract","dfdfdfdf"); corMap.put(...
  • Map集合用于储存元素对,Map储存的是一对键值(key和value),是通过key映射到它的valuevalues(): 是获取集合中的所有的----没有键,没有对应关系。KeySet(): 将Map中所有的键存入到set集合中。因为set具备迭代器。...
  • 关于Map的相关知识,我们将从来几个方面进行阐述。首先,我们看看Map架构如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value)。(02) AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API。...
  • 如果此map允许存放null,则返回的null不一定表示该map不包含键的映射,也可能明确的指明该键的映射为null。containsKey操作可以用来区分这两种情况。 参数为: key - 一个键,该键所关联的会被返回。 V put(K...
  • MapMap是一种用于快速查找的数据结构,它以键值对的形式存储数据,每一个键都是唯一的,且对应着一个,如果想要查找Map中的数据,只需要传入一个键,Map会对键进行匹配并返回键所对应的,可以说Map其实就是一个...
  • java中Map修改key

    千次阅读 2020-12-21 23:21:58
    map是不能直接修改key的,可以通过先获取对应key的value,然后将原来的key删除,在插入一个想要的key和value即可。 Map dtos = (Map) dto.get("key"); String value =(String) dtos.get("key"); dtos.remove...
  • 注意:如果你传递字典,map()会替换系列中的所有,如果它与字典的键不匹配(我想,你也做了同样的事情,即两次执行语句) . 检查pandas map(),apply() . Pandas文档说明:当arg是字典时,系列中不在字典中的(作为...
  • 以前查 forEach 和 map 的区别时, 总能看到这样一句话:forEach...我的理解就是使用 forEach 遍历一个数组, 修改 item 的, 就会改变原数组, 但最近发现并不一定会改变, 所以就做了一些测试测试一:可以看到这样是可...
  • 展开全部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...
  • 在我们数据处理与分析过程中,有时候需要对某一列的每一个都进行处理,这时候推荐大家使用apply或者map。但是,二者又有啥区别呢?一起来通过几个小例子学习一下吧。APPLY一、直接使用内置函数或者numpy函数# 数据...
  • 好程序员大数据学习路线分享Scala系列之映射Map首先我们先来看一下什么是映射(map)在Scala中,把哈希表这种数据结构叫做映射。1. 构建映射 在Scala中,有两种Map,一个是... 获取和修改映射中的根据键获取ma...
  • map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。var array1 = [1, 4, 9, 16]; // pass a function to map const map1 = array1.map(x => x * 2); console.log(map1); ...
  • Map赋值定义一个Map结构,往里面插入几条记录:Map map = new HashMap();map.put("1", "value1");map.put("2", "value2");map.put("3", "value3");Map取值的五种方式1、keySet二次取值2、entrySet使用iterator遍历...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,435
精华内容 974
关键字:

修改map值