查找list中重复数据

原创 2016年08月31日 15:45:36

需求:
查找一个List集合中所有重复的数据,重复的数据可能不止一堆,比如:aa, bb, aa, bb, cc , dd, aa这样的数据。如果有重复数据,则给这些重复数据加上编号,上述数据改为:aa1, bb1, aa2, bb2, cc, dd.

算法如下:

public static void same(List<String> list) {
        String [] indexArr ;
        Map<String, String> map = new HashMap<String, String>();
        for (int i = 0; i < list.size(); i++) {
            String key = list.get(i);
            String old = map.get(key);
            if (old != null) {
                map.put(key, old + "," + (i + 1));
            } else {
                map.put(key, "" + (i + 1));
            }
        }
        Iterator<String> it = map.keySet().iterator();
        int index = -1;
        while (it.hasNext()) {
            String key = it.next();
            String value = map.get(key);
            if (value.indexOf(",") != -1) {
                System.out.println(key + " 重复,行: " + value);
                indexArr = value.split(",");

                for (int i = 0; i < indexArr.length; i++) {
                    index = Integer.parseInt(indexArr[i])-1;
                    list.set(index, list.get(index)+(1+i));
                }
            }
        }

        for (String val : list) {
            System.out.println("val = "+val);
        }
        System.out.println("..................");

    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

Java中List集合去除重复数据的方法

1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i =...
  • u011728105
  • u011728105
  • 2015年06月22日 18:50
  • 39379

查找list中的重复数据,并得到重复数据索引位置

package cn.com.newglobe.action.attendance; import java.util.ArrayList; import java.util.HashMap; im...
  • johnjobs
  • johnjobs
  • 2013年08月08日 14:07
  • 2465

将List中某个字段相同的数据相加(统计出现了几次)

//取出初始数据 List LdpaMtxfjlbList = ldpaMtxfjlService.selectAllInfo(); Map map = new HashMap //将日...
  • qq_29395899
  • qq_29395899
  • 2016年11月18日 16:17
  • 1297

list 根据相同字段合并数据

List中,User有id和money两个字段,如果id相同,就把User合并,并且将money相加,java怎么处理?? 假如 id 是 String类型 User tmpUser ...
  • asunjianren
  • asunjianren
  • 2015年03月27日 15:25
  • 2600

两个List比较内容是否一样

两个list比较包含元素是否全部相同
  • zc274456223
  • zc274456223
  • 2017年09月12日 11:23
  • 354

两个list取出重复数据

public static void main(String[] args) { List list1 = new ArrayList(); for (int i = 0; i < 5; i...
  • shijing266
  • shijing266
  • 2015年09月11日 09:52
  • 2120

java List Map数据对比 找出相同和不同的内容

最近在搞一个,数据对比功能,但是需要得到新数据和数据库的数据,多出来的数据和缺少的内容 原先搞出来的是 弄了两个List集合进行匹配代码就不贴了,说一下思路把 List list1=new Arr...
  • cr135810
  • cr135810
  • 2015年06月02日 17:02
  • 2622

java找出2个集合相同和不同的元素(以及去除List中的重复元素)

java找出2个集合相同和不同的元素(以及去除List中的重复元素)
  • high2011
  • high2011
  • 2016年01月10日 18:00
  • 18691

过滤一个查到的list相同的数据

域名类问题 功能:过滤升级过的域名 之前北龙注册的域名都是通用网址,后来不对外注册了,之前升级的通用网址都升级为.网址(国际域名),在本数据库里,有些客户升级了一些,有些没升级。 所以就要把...
  • u013249280
  • u013249280
  • 2015年12月10日 09:33
  • 673

去除list集合中重复项的几种方法

去除list集合中重复项的几种方法 因为用到list,要去除重复数据,尝试了几种方法。记录于此。。。 测试数据:        Liststring> li1 = new List...
  • rentian1
  • rentian1
  • 2016年11月15日 08:41
  • 3067
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:查找list中重复数据
举报原因:
原因补充:

(最多只允许输入30个字)