ListA = [{displayName="a",title="b",fieldId="01"},{displayName="c",title="d",fieldId="02"}]
ListB = [{displayName=null,title="b",fieldId="01"},{displayName="c",title="d",fieldId="02"},{displayName="null",title="ddd",fieldId="03"},{displayName=null,title="adad",fieldId="04"}}...]
ListA和ListB 中对象属性是对应的,
我想得到一个新的List
ListC = [{displayName="a",title="b",fieldId="01"},{displayName="c",title="d",fieldId="02"},{displayName="null",title="ddd",fieldId="03"},{displayName=null,title="adad",fieldId="04"}...]JavaList

解决方案 »

  1.   

    你这个要要List数组里面的对象的属性比较!
     为null的就替换掉~~~
    ------------------------循环一个List、判断对象的属性值为null的就去另一个list里面找对应下标的list里面的对象的属性来覆盖当前的就行!
      

  2.   

    最近比较闲,这样也可以
    public class Toto {
        
        public static List<SomeClass> merge(List<SomeClass> l1, List<SomeClass> l2){
            List<SomeClass> list = new ArrayList<SomeClass>(l1);
            List<String> fieldid = new ArrayList<String>();
            for(SomeClass sc : list){
                fieldid.add(sc.fieldid);
            }
            for(SomeClass sc : l2){
                if (!fieldid.contains(sc.fieldid)){
                    list.add(sc);
                }
            }
            
            return list;
        }
        
        public static void main(String... args) throws IOException {
            List<SomeClass> listA = new ArrayList<SomeClass>();
            listA.add(new SomeClass("a", "b", "01"));
            listA.add(new SomeClass("c", "d", "02"));
            
            List<SomeClass> listB = new ArrayList<SomeClass>();
            listB.add(new SomeClass(null, "b", "01"));
            listB.add(new SomeClass("c", "d", "02"));
            listB.add(new SomeClass(null, "ddd", "03"));
            listB.add(new SomeClass(null, "adad", "04"));
            System.out.println(listA);
            System.out.println(listB);
            System.out.println(merge(listA, listB));
            
        }
    }class SomeClass {
        public String displayName;
        public String title;
        public String fieldid;
        public SomeClass(String displayName, String title, String fieldid){
            this.displayName = displayName;
            this.title = title;
            this.fieldid = fieldid;
        }
        
        public String toString(){
            return "{displayName="+displayName+",title="+title+",fieldid="+fieldid+"}";
        }
    }
      

  3.   

    放进去之前先取出来做处理呗,如果没有就add进去就ok嘛。