美文网首页
List>根据两列去除重复

List>根据两列去除重复

作者: 小铭铭_7c47 | 来源:发表于2018-11-29 00:06 被阅读0次
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@SuppressWarnings({ "unchecked", "rawtypes" })
public class Test1 {
    public static void main(String[] args) {

        List<String> arrayList1 = new ArrayList<String>();//第一行集合
        arrayList1.add("a1");arrayList1.add("B2");arrayList1.add("a3");
        
        List<String> arrayList2 = new ArrayList<String>();//第二行集合
        arrayList2.add("a1");arrayList2.add("B2");arrayList2.add("B3");
        
        List<String> arrayList3 = new ArrayList<String>();//第三行集合
        arrayList3.add("c1");arrayList3.add("c2");arrayList3.add("c3");

        List<String> arrayList4 = new ArrayList<String>();//第四行集合
        arrayList4.add("d1");arrayList4.add("c2");arrayList4.add("c3");
        
        ArrayList listList = new ArrayList();
        listList.add(arrayList1);
        listList.add(arrayList2);
        listList.add(arrayList3);
        listList.add(arrayList4);
        System.out.println("删除前:" + listList);
        
        //根据 第一列 + 第二列 去重
        ArrayList keyList12 = new ArrayList();
        for(Iterator it2 = listList.iterator();it2.hasNext();){
            List list = (List)it2.next();
            
            //避免把 a+'' 和 ''+a 判断成相等
            String key12 = list.get(0) +"|"+ list.get(1); 
            
            if( keyList12.contains(key12) ){//若已经存过,那一行数据就删掉                
                it2.remove();
            }else{//第一次见的key12,记录一下
                keyList12.add(key12);               
            }
        }                       
        System.out.println("删除后:" + listList);
    }

}

打印结果:
删除前:[[a1, B2, a3], [a1, B2, B3], [c1, c2, c3], [d1, c2, c3]]
删除后:[[a1, B2, a3], [c1, c2, c3], [d1, c2, c3]]
a1, B2都相等,多以删掉后者

相关文章

网友评论

      本文标题:List>根据两列去除重复

      本文链接:https://www.haomeiwen.com/subject/bggtcqtx.html