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都相等,多以删掉后者
网友评论