集合元素排差:
1.從list集合找出不存在于array集合元素
2.從list1集合找出不存在于list2集合元素
3.從list1集合找出存在于list2集合元素
4.結(jié)果集元素去重
一挺勿、list不存在array集合元素
范例:批量錄入人員工號相關(guān)信息蔗衡,系統(tǒng)中不存在工號問題
/**
* list集合不存在array元素
*/
public void listComparisonArray(){
//模擬創(chuàng)建對比集合
String[] array = new String[20];
List<String> list = new ArrayList();
//循環(huán)第一個集合取出元素
String one = null;
//循環(huán)第二個集合取出元素
String two = null;
for(int a = 1;a <= array.length ;a++){
//array插入元素
array[a-1] = ""+a;
if(a % 2 == 0){
//list集合動態(tài)插入x個數(shù)
list.add(""+(a+1));
if((a+1)>array.length){
list.add(""+(a+1));
list.add(""+(a+3));
}
}
}
//兩個集合雙層嵌套循環(huán)
for (int i = 0; i < list.size();i++) {
//List集合取數(shù)
one = list.get(i);
for (int j = 0;j < array.length;j++){
//array集合取數(shù)
two = array[j];
//List集合內(nèi)存在array集合的數(shù)
if(one.equals(two)){
//通過移出集合差數(shù)
list.remove(i);
//避免移除后下次取數(shù)跳過一位對比
i--;
}
}
}
//結(jié)果集去重
List rList= removeRepeat(list);
System.out.println("不存在元素:"+String.join(",", rList));
}
二淀衣、list不存在list集合元素
范例:批量錄入人員工號相關(guān)信息,系統(tǒng)中不存在工號問題
/**
* list集合不存在list元素
*/
public void listComparisonList(){
//測試數(shù)據(jù)
Map map1=new HashMap();
map1.put("姓名","洪濤");
Map map2=new HashMap();
map2.put("姓名","鴻騰");
Map map3=new HashMap();
map3.put("姓名","宏圖");
Map map4=new HashMap();
map4.put("姓名","宏偉");
Map map5=new HashMap();
map5.put("姓名","洪濤");
Map map6=new HashMap();
map6.put("姓名","鴻濤");
Map map7=new HashMap();
map7.put("姓名","鴻濤");
//模擬創(chuàng)建集合一
List<Map> list1 = new ArrayList<>();
list1.add(map1);
list1.add(map2);
list1.add(map3);
list1.add(map4);
//模擬創(chuàng)建集合二
List<Map> list2 = new ArrayList<>();
list2.add(map5);
list2.add(map6);
list2.add(map7);
//循環(huán)第一個集合取出元素
String one = null;
//循環(huán)第二個集合取出元素
String two = null;
for (int x = 0;x < list2.size();x++) {
one = (String) list2.get(x).get("姓名");
for (int y = 0;y < list1.size();y++){
two = (String) list1.get(y).get("姓名");
//對比相同的移除
if (one.equals(two)){
list2.remove(list2.get(x));
x--;
}
}
}
//結(jié)果集去重
List rList= removeRepeat(list2);
System.out.println("不存在元素:"+rList);
}
三擎颖、list存在list集合元素
范例:批量錄入身份證號,系統(tǒng)中證件號已存在問題
/**
* list集合不存在list元素
*/
public void listComparisonLists(){
//測試數(shù)據(jù)
Map map1=new HashMap();
map1.put("姓名","洪濤");
Map map2=new HashMap();
map2.put("姓名","鴻騰");
Map map3=new HashMap();
map3.put("姓名","宏圖");
Map map4=new HashMap();
map4.put("姓名","宏偉");
Map map5=new HashMap();
map5.put("姓名","洪濤");
Map map6=new HashMap();
map6.put("姓名","鴻濤");
Map map7=new HashMap();
map7.put("姓名","洪濤");
//模擬創(chuàng)建集合一
List<Map> list1 = new ArrayList<>();
list1.add(map1);
list1.add(map2);
list1.add(map3);
list1.add(map4);
//模擬創(chuàng)建集合二
List<Map> list2 = new ArrayList<>();
list2.add(map5);
list2.add(map6);
list2.add(map7);
//存儲兩個集合都存在元素
List result = new ArrayList();
//循環(huán)第一個集合取出元素
String one = null;
//循環(huán)第二個集合取出元素
String two = null;
for (Map<String,String> Mapa : list2) {
one = Mapa.get("姓名");
for (Map<String,String> Mapb : list1){
two = Mapb.get("姓名");
//對比相同的添加
if (one.equals(two)){
result.add(one);
}
}
}
//結(jié)果集去重
List rList= removeRepeat(result);
System.out.println("存在元素:"+rList);
}
四、公共方法處理存儲同一元素多次不存在/存在數(shù)據(jù)
/**
* 集合內(nèi)去重
* @param list
* @return doubleList
*/
public static List<String> removeRepeat(List list){
List doubleList= new ArrayList();
Set set = new HashSet();
set.addAll(list);
doubleList.addAll(set);
return doubleList;
}
五布朦、主方法
import java.io.IOException;
import java.util.*;
public class Test {
Test test = new Test();
test.listComparisonArray();
test.listComparisonList();
test.listComparisonLists();
}
六、執(zhí)行結(jié)果