java map集合去重复_对List<Map>里的map的某个属性重复的值进行处理的方法

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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值