目前客户有这样一个需求 数据报表中 去重复某几列字段 保留原有数据的其他字段 小弟实在不知道怎么去写  请看代码与实现的效果  求大佬多点拨点拨小弟很是着急  对这方面不是很懂

解决方案 »

  1.   

    用一个类继承hashmap,然后重写equals方法。参考这里我的回答
      

  2.   


    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);
    }

    }自己琢磨~