精华内容
下载资源
问答
  • Map替换key

    千次阅读 2020-07-14 14:54:54
    示例: import java.util.HashMap; import java.util.Map; public class Test { private static void show(Map<String,String> map){ for(Map.Entry<... String mapKey = entry.getKey();

    示例:

    import java.util.HashMap;
    import java.util.Map;
    
    public class Test {
        private static void show(Map<String,String> map){
            for(Map.Entry<String, String> entry : map.entrySet()) {
                String mapKey = entry.getKey();
                String mapValue = entry.getValue();
                System.out.println(mapKey + ":" + mapValue);
            }
        }
        public static void main(String[] args) {
            Map<String,String> map = new HashMap();
            map.put("111","test1");
            map.put("222","test2");
            map.put("333","test3");
            show(map);
            // 替换key!!!!!!!!!!!
            map.put("First", map.remove("111"));
            System.out.println("-------------");
            show(map);
        }
    }
    

    结果:

    展开全文
  • map中替换key

    万次阅读 2019-06-27 16:18:16
    param.put("mobile", param.remove("mobiles"));
    param.put("mobile", param.remove("mobiles"));
    展开全文
  • table="VERIFIED_ROLES_MAP"> 这样映射出来,会产生中间表,关联QualifiedRole主键及Role主键。并且QualifiedRole主键和VerifiedEvent的EVENT_ID作为联合主键。 现在需求变了,

    最近一个老项目,模型结构是这样的

    QualifiedEntity


    mapping 文件

    <class name="QualifiedRole">

    .....

    <map name="qualifiedEventRole" cascade="all"
    table="VERIFIED_ROLES_MAP">
    <key column="QUALIFIED_ROLE_ID" not-null="false" />
    <map-key-many-to-many column="EVENT_ID" class="VerifiedEvent" />
    <many-to-many column="ROLE_ID" class="Role" />
    </map>

    </class>

    这样映射出来,会产生中间表,关联QualifiedRole主键及Role主键。并且QualifiedRole主键和VerifiedEvent的EVENT_ID作为联合主键。


    现在需求变了,VerifiedEvent的id 可以关联多个role, 而不再是以前的1对1关系。所以看起来,应该对这样的模型进行映射

    Map<VerifiedEvent, List<<Role>>, 不过查询了hibernate文档之后,不能直接对这样的结构进行映射。而采取把Map里面的 value:List<Role>放到一个新的wrapper类,再进行映射,如下:

    <class name="QualifiedRole">

    .....

    <map name="qualifiedEventRole" cascade="all"
    table="VERIFIED_ROLES_MAP">
    <key column="QUALIFIED_ROLE_ID" not-null="false" />
    <map-key-many-to-many column="EVENT_ID" class="VerifiedEvent" />
    <many-to-many column="WRAPPER_ROLE_ID" class="WrapperRole" />
    </map>

    </class>

    <class name="WrapperRole">

    <id>**** </id>

    <list>

    <key column="WRAPPER_ROLE_ID" />
    <list-index column="LIST_INDEX" />
    <one-to-many class="Role" />

    </list>

    </class>


    虽然这样能解决问题,但是在一个运行很久的系统来说,这样会造成数据表的变化,那么以前大量的老数据如何迁移?


    基于以上考虑,决定使用一个新类: QualifiedEventRole,并利用它关联以前的Key和Value 对象,至于mapping,以映射Set的方式,即可重用以前的表结构。模型变化如下:


    <class name="QualifiedRole">

    .....

    <set name="qualifiedEventRole" table="VERIFIED_ROLES_MAP">
                <key column="QUALIFIED_ROLE_ID" not-null="false" />
                <composite-element class="VerifiedApplicationRole">
                    <many-to-one name="verificationEvent" class="VerifiedEvent" column="EVENT_ID"/>
                    <many-to-one name="role" class="Role" column="ROLE_ID"/>
                </composite-element>

    </set>

    </class>


    总结:以这种方式实现重构,表结构无任何变化,还是和以前一样,3张表:QualifiedRole, VerifiedEvent, Role以及一个中间表VERIFIED_ROLES_MAP,但以前的Key: VerifiedEvent对象,满足了需求,实现了对多个Role的依赖,不再有唯一约束。

    在老数据很大,关系较负责的情况下,要考虑数据迁移的难度。能不变表结构实现重构,这样的方式,只需要修改domain模型相关代码,升级相对简单。

    展开全文
  • import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; ...import java.util.Map; import java.util.Set; public class Test {  /**  * @param 无聊写

    import java.lang.reflect.Field;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;

    public class Test {

     /**
      * @param 无聊写着玩
      */
     public static void main(String[] args) {
      Test t = new Test();
      //list entity 返回
      List<TestInfo> list = t.getEntityList();
      for(TestInfo entity :list){
       System.out.println("A1 : " + entity.getA1());
       System.out.println("B1 : " + entity.getB1());
       System.out.println("C1 : " + entity.getC1());
       System.out.println("D1 : " + entity.getD1());
       System.out.println("E1 : " + entity.getE1());
       System.out.println("F1 : " + entity.getF1());
       System.out.println("G1 : " + entity.getG1());
      }
      //list map 返回
      List<Map<String,Object>> listMap = t.getNewMapList();
      for(Map<String,Object> map :listMap){
       Set<String> keys = map.keySet();
       for(String key:keys){
        System.out.println(key +" : "+map.get(key));
       }
      }
     }
     
     /**
      * 封装成 list entity 返回
      * @return
      */
     public List<TestInfo> getEntityList(){
      List<Map<String,Object>> listMap = this.getNewMapList();
      List<TestInfo> list =null;
      try {
       if(listMap!=null&&listMap.size()>0){
        TestInfo entity = null;
        list = new ArrayList<TestInfo>();
        for(Map<String,Object> map:listMap){
         entity = new TestInfo();
         Set<String> keys = map.keySet();
         for(String key:keys){
    //     System.out.println(key+": "+map.get(key));
          String fieldName = key ;
          Object fieldValue = map.get(key);
          this.setValue(entity, fieldName, fieldValue);//反射赋值
         }
         list.add(entity);
        }
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
      return list;
     }
     
     
     /**
      * 反射给实体类赋值
      * @param entity 当前实体类对象
      * @param fieldName 实体类 字段名称
      * @param fieldValue 实体类 字段对应的值
      * @throws Exception
      */
     private void setValue(Object entity,String fieldName,Object fieldValue) throws Exception{
      Field[] field = entity.getClass().getDeclaredFields();// 获取实体类的所有属性,返回Field数组
      for (int j = 0; j < field.length; j++) {
       String name = field[j].getName(); // 获取属性的名字
       field[j].setAccessible(true);
       if (fieldName.equals(name)) {
        field[j].set(entity, fieldValue);// 赋值
        break;
       }
      }   
     }
     
     
     /**
      * new list  替换map的key的方法
      * @return
      */
     public List<Map<String,Object>> getNewMapList(){
      List<Map<String,Object>> newList = null;
      List<Map<String,Object>> oldList = this.getDataMapList();
      if(oldList!=null&&oldList.size()>0){
       newList = new ArrayList<Map<String,Object>>();
       Map<String,Object> keyMap = this.getKeyMap();
       Map<String,Object> valueMap = null;
       for(Map<String,Object> map:oldList){
        Set<String> keys = map.keySet();
        valueMap = new HashMap<String, Object>();
        for(String key :keys){
         //get value
         Object value = map.get(key);
         //new key
         String newKey = keyMap.get(key).toString();
         valueMap.put(newKey, value);
        }
        newList.add(valueMap);
       }
      }
      return newList;
     }

     /**
      * data list
      * @return
      */
     private List<Map<String,Object>> getDataMapList(){
      List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
      Map<String,Object> map = null;
      for(int i=0;i<3;i++){
       map = new HashMap<String, Object>();
       map.put("A", "1");
       map.put("B", "2");
       map.put("C", "3");
       map.put("D", "4");
       map.put("E", "5");
       map.put("F", "6");
       map.put("G", "7");
       list.add(map);
      }
      return list;
     }
     
     /**
      * new Key
      * @return
      */
     private Map<String,Object> getKeyMap(){
      Map<String,Object> map = new HashMap<String, Object>();
      map.put("A", "A1");
      map.put("B", "B1");
      map.put("C", "C1");
      map.put("D", "D1");
      map.put("E", "E1");
      map.put("F", "F1");
      map.put("G", "G1");
      return map;
     }
     
    }

     

    展开全文
  • Map中key的名称更换

    2019-10-23 09:14:28
    Map<String,Object> result = Map.newHashMap(); result.put(“newKey”,result.remove(“oldKey”));
  • public class Test { private static Map<Object, Object> sourceMap = new HashMap<Object, Object>(); private static Map<Object, Object> targetmap = new HashMap<Object, Object>(); ...
  • 有一个业务需求要自己解析替换sql的参数 网上找了半天倒是有一种方法是遍历参数的map然后replace之 但是那种方法在参数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<String,Object> camelDeviceMap = deviceMap.entrySet().stream() ... StringUtils.toCamel(e.getKey(),false),Map.Entry::getValue)); /** * 转换为驼峰结构 * @param varName * @return */ pu.
  • 本次实现的是在scala,使用replaceAll实现正则匹配,其中正则匹配替换key-value规则对应map中定义的key-value值。 上一篇文章讲的就是将用户传入的字符串参数按照格式分割并转换成map,感兴趣的可以去看看:...
  • 以上代码是想实现将map中Key值转换为打消,value值不变,乍看代码没什么问题。但实际会有错误。 比如:  原来的map是(A,1),(B,2) 想要转换成(a,1),(b,2)  但当map遍历一次之后。m...
  • js快速替换对象的key

    千次阅读 2020-09-02 16:40:51
    请求的到数据结构 但是,前端需要的是name,value类型的对象格式 arrObj.map((item,index)=>{ return {name:item.x,value:item.y} })
  • map修改key

    万次阅读 2019-10-28 17:02:08
    map是无法直接修改key值的,所以要采用其他的方案,新增一个键值对,再删除之前那个要修改的 map要使用ConcurrentHashMap,不然会抛.ConcurrentModificationException异常,然后采用迭代器的方式遍历,不能用for循环...
  • java怎么才能替换Map集合的健和值,只能有一个健和值  分享| 2014-08-26 13:10lsz1906654316 | 浏览 1579 次 来自:手机知道  java 2014-08-26 13:16 #2016年高质量新标准全面升级!...
  • java 关于Mapkey可不可以是自定义对象的学习   以前写过一篇文章,当时写的不明确,对大家有点误导了,各位大神指点,我还是重写写一下我当时的想法,好几年前的了哈哈,不好意思。 场景:   因为我们在平时用...
  • package day05; import java.util.HashMap; import java.util.Map; /** * java.util.Map ... * 在Map中key不允许重复(重复是依靠key的equals判断) * 常用的实现类:HashMap * @author kaix...
  • 替换JSONObject的key

    2020-08-18 10:09:59
    //调用,formData是被替换的json,map是要替换key值(原理:重组json) //jsonObj = changeJsonObj(jsonObject, hashedMap); public static JSONObject changeJsonObj(JSONObject jsonObj, Map<String, String>...
  • Map, String> map = toMap(json); Iterator it = map.keySet().iterator(); while (it.hasNext()) { String s = (String) it.next(); System.out.print("key:"+s+"\t"); System.out.println("value:"+map.get...
  • C++ Map相同key是否覆盖问题分析

    万次阅读 2018-07-12 12:25:32
    C++的标准库关联容器map是不允许有key相同的键值对存在的。那么当key已经存在的情况下,我们再次插入相同的key,那么key的value会被覆盖吗? 2 编码测试 测试代码: #include &lt;map&gt; #include &...
  • 修改Map中确定key对应的value问题

    万次阅读 2015-09-21 23:06:59
    今天在码代码的时候出现一个没有预料的问题: 先看下面的代码: public static void main(String[] args) { String[] files=new ... Map map=new HashMap(); map.put("file", "12345"); map.put("id", 15);
  • map忽略Key大小写敏感度

    千次阅读 2020-05-07 01:35:23
    不区分大小写,简单来说就是put数据进map的时候,最终map中该类型的key只能有一个(比如AAA,aaa,AaA),在取值的时候,可以get所有该类型(由字母a组成的三位字符)的key取出同一个值。 以下是总结出来的一些方法...
  • Java关于Map对象改变Key值的问题

    万次阅读 2017-08-15 16:17:37
    首先给出经验:通常情况下都是将Mapkey设为不可变量,如string等,不要用可变量做key
  • Java8 Collectors.toMapkey重复

    千次阅读 2020-09-23 20:23:27
    ** Map<String, BottomAccount&...如这个地方,如果使用GoodName为mapkey,货物名称有可能会重复,这时候就会报Duplicate Key的问题,其实是mapkey重复了,首先查看源码: 显而易见,throwingMerger()是一个出现
  • Map中key转为驼峰形式输出

    千次阅读 2019-10-14 16:38:37
    List<Map<String, Object>> maps = addressDao.selectMaps(wrapper); return maps.stream() .map(MapUtil::toCamelCaseMap) .collect(Collectors.toLis...
  • map中key更换名称的问题

    千次阅读 2018-07-17 11:18:35
    for(HashMap&lt;String, Object&gt; o:list){ o.put("Delivery_date", o.remove("SCSU390_08")); }  
  • MapKEY值转成大写

    万次阅读 2017-07-13 11:29:32
    public class OrderBy {  public static void main(String[] args) {  List> list = new ArrayList>();    Map map = new HashMap();  Map map1 = new Hash
  • ... android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height=...这是 Google map view 的 XML 代码,需要在 AndroidManiFest.xm 添加什么代码才能在 google map 找 API key
  • 在企业开发的时候,我们可能会遇到这样的问题,我们在处理map数据的时候,返回给别人的数据,别人说要修改一个字段的名字,这时候就犯难了,好多地方都是用的之前的字段名,改起来好麻烦,一个地方一个地方找,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 147,366
精华内容 58,946
关键字:

替换map中的key