这里有新鲜出炉的 Java 并发编程示例, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 java 查找 list 中重复数据实例详解的相关资料, 需要的朋友可以参考下
java 查找 list 中重复数据实例详解
需求:
查找一个 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("..................");
- }
来源: http://www.phperz.com/article/18/0210/358674.html