如下:

package com.test;

import java.util.*;

public class Test {

    /**
AAAA AAAA BBBB BBBB CCCC CCCC CCCC CCCC
*/
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("AAAA");
list.add("AAAA");
list.add("AAAA");
list.add("BBBB");
list.add("BBBB");
list.add("BBBB");
list.add("CCCC");
list.add("CCCC");
list.add("CCCC");
list.add("DDDD"); new Test().removeDuplicateWithOrder(list);
// System.out.println(list);
} // 删除ArrayList中重复元素
public static void removeDuplicate(List list) {
for (int i = ; i < list.size() - ; i++) {
for (int j = list.size() - ; j > i; j--) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
System.out.println(list);
} // 方法二:通过HashSet剔除
// 删除ArrayList中重复元素,add进去顺序就变了不考虑顺序的话可以使用
public static void removeDuplicate1(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list);
} // 方法三: 删除ArrayList中重复元素,保持顺序
// 删除ArrayList中重复元素,保持顺序
public static void removeDuplicateWithOrder(List list) {
Set set = new HashSet();
List newList = new ArrayList();
for (Iterator iter = list.iterator(); iter.hasNext();) {
Object element = iter.next();
if (set.add(element))
newList.add(element);
}
list.clear();
list.addAll(newList);
System.out.println(" remove duplicate " + list);
}
}

还有两种较简单的,思想都是一样的,而且顺序也会保持的:

public class Test {
public static void main(String[] args) {
ArrayList<String> arr = new ArrayList<String>();
arr.add("aaa");
arr.add("bbb");
arr.add("bbb");
arr.add("aaa");
arr.add("ccc");
arr.add("ccc"); List<String> newList = getNewList(arr);
System.out.println(newList); // getlist(arr);
} public static List <String> getNewList(List<String> li){
List<String> list = new ArrayList<String>();//创建新的list
for(int i=; i<li.size(); i++){
String str = li.get(i); //获取传入集合对象的每一个元素
if(!list.contains(str)){ //查看新集合中是否有指定的元素,如果没有则加入
list.add(str);
}
}
return list; //返回集合
} public static void getlist(List<String> arr) {
ArrayList<String> result = new ArrayList<String>();
for (Object s : arr) {
if (Collections.frequency(result, s)<)
result.add((String) s);
}
System.out.println(result);
}
}

针对方法getList的小说明:

frequency(Collection<?>, Object) 方法用于获取所指定元素集合collection等于指定对象object中的数量。

if (Collections.frequency(result, s)<1)
result.add((String) s);

的意思是如果对象s在集合result中出现的次数小于1(无s元素),就将它添加进入集合result;

end;

Java中如何去除List中的重复的值?的更多相关文章

  1. 不能在具有唯一索引“IX_******”的对象“dbo.****”中插入重复键的行。重复键值为 (110, 372000, 2)。

    当尝试插入数据,或者更新某个表的时候出现 不能在具有唯一索引“IX_******”的对象“dbo.****”中插入重复键的行.重复键值为 (110, 372000, 2). 遇到这个问题的时候,请找到 ...

  2. python中如何去除列表中重复元素?

    方法一: 用内置函数set: list1 = [1, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9] list2 = list(set(list1)) print(list2) ...

  3. JAVA 去除实体中类型为string的属性值中的空格

    前端传入的参数实体中,有时候会出现传入了一空格,导致操作失败,这时就可以利用java反射机制去除实体中类型为sting的属性值中的空格. java代码示例: package com.spyang.ut ...

  4. list 去掉重复的值

    去除List列表中重复值(3种解决方法)public static void main(String[] args) { String[] ar = { "dd", "c ...

  5. 遍历 Input检测是否有重复的值

    在项目中需要遍历某个Table中的Input输入是否有重复的值,为此基于Jquery写了两种实现方式(关键在于取值方式): 方法1: function CheckGoodsNo() { var ish ...

  6. [转]java去除List中重复的元素

    java去除List中重复的元素 如果用Set ,倘若list里边的元素不是基本数据类型而是对象, 那么请覆写Object的boolean   equals(Object   obj)   和int  ...

  7. JAVA案例练习: 去除ArrayList中重复的字符串(字符串内容相同),去除重复的对象

    package com.yqw.list; import java.util.ArrayList;import java.util.Iterator; public class Demo_ArrayL ...

  8. ArrayList去除集合中字符串的重复值

    package com.heima.list; import java.util.ArrayList; import java.util.Iterator; import java.util.List ...

  9. 关于iOS去除数组中重复数据的几种方法

    关于iOS去除数组中重复数据的几种方法   在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方 ...

随机推荐

  1. python基础之模块part1

    模块: 模块本质上就是一个Python程序. 所有说是对象的,一定可以通过  对象.方法  来实现某些操作. 模块种类: 内置模块 第三方模块 自定义模块 import在查找模块的顺序:内置模块--- ...

  2. android stadio open recent 在同一窗口打开

    Android staido 有一个功能是open recent ,默认是下面这样的: 就出来一个框,给你选择,是在新的窗口打开,还是在当前窗口打开.如果你选了当前窗口,并且点了Remember,do ...

  3. bootstrap设计进度条和圆点

    1.设计进度条.文字前面的圆点和图片 2.思路: (1)设计进度条 (a) 进度条有滚动效果,要加上类.active (b)进度条的颜色通过类.progress-bar-success来写,可以写成. ...

  4. android中Activity中的WindowManager与Window

    在做项目的过程中,需要实现Activity非全屏显示.窗口背景透明显示的效果. 在实现这些功能的过程中,涉及到Window与WindowManager两个类,经过查一些相关资料,了解二者之间的不同点如 ...

  5. C# p-Inovke C++动态链接库

    在C++的动态链接库 写了一个测试方法,然后想在C#客户端进行pInvoke调用,始终报异常如下: 试图加载格式不正确的程序. (异常来自 HRESULT:0x8007000B). 最后发现, 需要将 ...

  6. 《Cracking the Coding Interview》——第1章:数组和字符串——题目3

    2014-03-18 01:32 题目:对于两个字符串,判断它们是否是Anagrams. 解法:统计俩单词字母构成是否相同即可. 代码: // 1.3 Given two strings, write ...

  7. lnmp一键安装环境中nginx开启pathinfo

    问题及原理可参考:http://www.laruence.com/2009/11/13/1138.html 如果是用lnmp脚本一键安装的开发环境,可以通过如下方式开户pathinfo: 1.注释ng ...

  8. ACM二分搜索算法

    二分搜索算法就是把要搜索的数据在搜索文本中根据情况进行折半,比如要在2 6 4 9 3 8 7 3 5中找到找到4的位置,那么可以考虑先把数据进行排序,然后把拍好后的数据的中间的那个数据和要查找的数据 ...

  9. 【UVA10655】 Contemplation! Algebra

    题目 给定 \(p = a + b\) 和 \(q = ab\) 和 \(n\),求 \(a ^ n + b ^ n\). $0\le n\lt 2^{63} $ 分析 大水题. 先考虑 \(n\) ...

  10. CodeBlocks X64 SVN 编译版

    CodeBlocks X64 SVN 编译版 采用官方最新的SVN源码编译而来,纯64位的,所以32位系统是不能使用的.字体使用的是微软的YaHei UI字体,如果有更好的字节建议,可以留言. 由于直 ...