list去重问题 求解决 请看详情

你是猴子请来的逗逼嘛 2018-09-18 10:38:24
目前客户有这样一个需求 数据报表中 去重复某几列字段 保留原有数据的其他字段 小弟实在不知道怎么去写 请看代码与实现的效果 求大佬多点拨点拨小弟很是着急 对这方面不是很懂
...全文
705 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoujiawei6 2018-09-20
  • 打赏
  • 举报
回复

public class DoMain {

	public static void main(String[] args) {
		List<Map<String, String>> list = new ArrayList<>();
		Map<String, String> m1 = new HashMap<>();
		m1.put("a", "a");
		m1.put("b", "b");
		m1.put("c", "1");
		Map<String, String> m2 = new HashMap<>();
		m2.put("a", "a");
		m2.put("b", "b2");
		m2.put("c", "1");
		list.add(m1);
		list.add(m2);
		
		List<String> cache = new ArrayList<>();
		for (Iterator<Map<String, String>> iterator = list.iterator(); iterator.hasNext();) {
			Map<String, String> map = (Map<String, String>) iterator.next();
			for (Entry<String, String> entry : map.entrySet()) {
				String key = entry.getKey();
				// 只过滤key为a,b的行
				if (!("a".equals(key) || "b".equals(key))) {
					continue;
				}
				
				String value = entry.getValue();
				if (cache.contains(value)) {
					map.put(key, "");
				} else {
					cache.add(value);
				}
			}
		}
		System.out.println(list);
	}
	
}
自己琢磨~
  • 打赏
  • 举报
回复
引用 2 楼 nayi_224 的回复:
其他字段按什么规则合并。101和102取哪个。

其他字段不合并 正常显示 只取101、 而102的两个字段与101 一样不显示


  • 打赏
  • 举报
回复
其他字段不合并 正常显示 只取101、 而102的两个字段与101 一样 要不显示
nayi_224 2018-09-18
  • 打赏
  • 举报
回复
其他字段按什么规则合并。101和102取哪个。
java1357924680 2018-09-18
  • 打赏
  • 举报
回复
用一个类继承hashmap,然后重写equals方法。

参考这里我的回答

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧