一個list里map其中的一個字段的值相同,如何判斷這個字段相同,就把這個map的其他字段存入另一個map中


//不建議使用Map保存這些,使用實體bean更好

 

package com.rxlamo.zhidao;

 
import  java.util.*;
 
public  class  Main {
 
 
     public  static  void  main(String[] args) {
 
         List<Map<String, Object>> list =  new  ArrayList<>( 4 );
 
         /*
          * map1:{ID:4,身高:170,體重:60}
          map2:{ID:4,年齡:20,性別:男}
          map3:{ID:5,身高:160,體重:50}
          map4:{ID:5,年齡:19,性別:女}
          */
 
         Map<String, Object> map1 =  new  HashMap<>();
         map1.put( "ID" 4 );
         map1.put( "身高" 170 );
         map1.put( "體重" 60 );
 
         list.add(map1);
 
         Map<String, Object> map2 =  new  HashMap<>();
         map2.put( "ID" 4 );
         map2.put( "年齡" 20 );
         map2.put( "性別" '男' );
 
         list.add(map2);
 
 
         Map<String, Object> map3 =  new  HashMap<>();
         map3.put( "ID" 5 );
         map3.put( "身高" 160 );
         map3.put( "體重" 50 );
 
         list.add(map3);
 
         Map<String, Object> map4 =  new  HashMap<>();
         map4.put( "ID" 5 );
         map4.put( "年齡" 19 );
         map4.put( "性別" '女' );
 
         list.add(map4);
 
         merge(list);
 
 
         for  ( int  i =  0 ; i < list.size(); i++) {
             Map<String, Object> map = list.get(i);
             System.out.println(map);
         }
 
 
     }
 
 
     private  static  void  merge(List<Map<String, Object>> list) {
 
         for  ( int  i =  0 ; i < list.size(); i++) {
 
             Map<String, Object> map = list.get(i);
 
 
             // 從當前項的下一項開始檢查
             for  ( int  j = i +  1 ; j < list.size(); j++) {
 
                 Map<String, Object> childMap = list.get(j);
 
                 // ID 相等
                 if  (map.get( "ID" ).equals(childMap.get( "ID" ))) {
                     // 合並,此處需要先 remove
                     list.remove(childMap);
                     map.putAll(childMap);
                 }
 
 
             }
 
 
         }
 
     }
 
 
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM