package test;
import java.util.*;
import java.util.stream.Collectors;
public class Test5 {
public static void main(String[] args) {
List> list = new ArrayList<>();
list.add(new LinkedHashMap() {{
put("id", "a");
put("age", "13");
put("sex", "男");
}});
list.add(new LinkedHashMap() {{
put("id", "a");
put("age", "14");
put("sex", "男");
}});
list.add(new LinkedHashMap() {{
put("id", "b");
put("age", "14");
put("sex", "男");
}});
list.add(new LinkedHashMap() {{
put("id", "c");
put("age", "14");
put("sex", "男");
}});
list.add(new LinkedHashMap() {{
put("id", "");
put("age", "14");
put("sex", "男");
}});
list.add(new LinkedHashMap() {{
put("id", "c");
put("age", "14");
put("sex", "男");
}});
handleRepeatPrimaryKey(list, "id");
List> hasList = new ArrayList<>();
hasList = list.stream().filter(x -> !x.get("id").toString().equals("")).collect(Collectors.toList());
List> notHasList = new ArrayList<>();
notHasList = list.stream().filter(x -> x.get("id").toString().equals("")).collect(Collectors.toList());
System.out.println(hasList);
System.out.println(notHasList);
}
public static List> handleRepeatPrimaryKey(List> list, String id) {
List> itemList = new ArrayList<>();
for (LinkedHashMap lhm : list) {
if (itemList.size() == 0) {
itemList.add(lhm);
} else {
ListIterator> listIterator = itemList.listIterator();
while (listIterator.hasNext()) {
if (listIterator.next().get(id).toString().equals(lhm.get(id).toString())) {
lhm.put(id, "");
}
}
// 注意放在循环外面
listIterator.add(lhm);
}
}
return list;
}
}