如何去除List中的重复值?

今天碰到一个问题,已经有一个List<string>,里面有重复值,希望将重复值去掉,同时不能破坏现有的顺序。

?

感谢 http://bbs.csdn.net/topics/390247210。

?

供自己参考:

?

1、通过循环进行删除

?

?

复制代码

public static void removeDuplicate(List list) {

for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {

for ( int j = list.size() - 1 ; j > i; j -- ) {

if (list.get(j).equals(list.get(i))) {

list.remove(j);

}

}

}

System.out.println(list);

}

?

复制代码

?

2、通过HashSet删除

?

public static void removeDuplicate(List list) {

HashSet h = new HashSet(list);

list.clear();

list.addAll(h);

System.out.println(list);

}

?

3、删除重复元素,并保持顺序。(我没试)

?

?

复制代码

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

}

?

复制代码

?

4、定义一个方法,调用即可。

?

?

复制代码

publi List<String> getNewList(List<String> li){

List<String> list = new ArrayList<String>();

for(int i=0; i<li.size(); i++){

String str = li.get(i); //获取传入集合对象的每一个元素

if(!list.contains(str)){ //查看新集合中是否有指定的元素,如果没有则加入

list.add(str);

}

}

return list; //返回集合

}

?

public class Test{

public static void main(String[] args){

ArrayList<String> arr = new ArrayList<String>();

arr.add("aaa");

arr.add("bbb");

arr.add("aaa");

arr.add("ccc");

arr = getNewList(arr); //方法去重

System.out.println(arr);

}

}

时间: 2024-11-06 14:09:50

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

js去除数组中的重复值

hasOwnProperty(property) 方法 JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性. 使用方法: object.hasOwnProperty(proName) 其中参数object是必选项.一个对象的实例.proName是必选项.一个属性名称的字符串值. 如果 object 具有指定名称的属性,那么JavaScript中hasOwnProperty函数方法返回 true:反之则返回 false.此方法无法检查该对

JavaScript去除数组中的重复值

用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能. Javascript 中的原型函数(prototype)的工作原理,在 javascript 中每次声明新函数的过程中,就会为其创建一个 prototype 的属性.在未加其他附带条件情况下,所有的 prototype 属性都会自动获取 constractor 属性,constructor 内包含一个指向 prototype 属性所属函数的指针(就是说 constructor 回指构造函数本身).静乐县隗承五金

去除列中的重复值

CSV中原内容: 要求去除A列中的重复字段,去除后如下: 代码如下: 1 $dd = import-csv d:\disks.csv 2 #通过倒序方法去除列中重复值 3 for ($i=$dd.count-1;$i -ge 0;$i--) 4 { 5 $previous = $dd[$i-1].Server 6 $current = $dd[$i].Server 7 If ($current -eq $previous) 8 { 9 $dd[$i].Server = "" 10 }

javaScript 去除数组中的重复值

//js 数组去除重复的方法:ps:forEach是ECMA5中Array新方法中最基本的一个,就是遍历 Array.prototype.unique=function (){ var result=[]; this.forEach(function (val){ if (result.indexOf(val)<0){ result.push(val); } }) return result; } //利用hash表去除重负的方法:这是一种利用空间换区时间的方法: Array.prototype

去除源文件中的重复行的程序流程及其C代码实现

(本文正在参加2015博客之星评选,诚邀你来投票,谢谢:http://vote.blog.csdn.net/blogstar2015/candidate?username=zhouzxi) 一.需求描述 要求对一个包含若干行记录且某几条记录相同的文件(源文件)实现去重操作,并将去重之后的记录写入到另外一个文件(目的文件)中.也即最后生成的文件中没有内容相同的两行记录.如果源文件中两条记录之间有空行,则在目的文件中一并将其去掉. 两条记录相同的标准是: 1) 字符个数及内容完全相同. 2) 去除空

去除字符串中连续重复的字符

目的:把字符串中连续重复的字符赐除掉. 输入:序列:kkkhan888shioobo66 正确的返回结果应该是:hanshibo 思路解析 1 使用JAVA正则表达式,匹配出连续相同的字符或数字. 2 查找出匹配出来的序列,并取出来放到list里面 3 对list进行排序.把重复的序列排在前面.(该步可省略) 4找出连续重复的子序列,并把这些连续重复的子序列用空(字字符串)替换. 5 返回输出. code public class Test { public static void main(S

一些常用的方法(1)--去除DataTable中的重复数据

private DataTable Display(DataTable dtSource)        {            DataTable dtTemp = dtSource.Copy();            foreach (DataRow dr in dtSource.Rows)            {                DataRow[] drRepeat = dtTemp.Select("AA='" + dr["AA"].ToS

去除数组中的重复数据

1 public static String[] array_unique(String[] a) { 2 Set<String> set = new HashSet<String>(); 3 set.addAll(Arrays.asList(a)); 4 return set.toArray(new String[0]); 5 } 去除数组中的重复数据

计算 num 的 n 次幂、n 的阶乘、斐波那契数列、字符串的字节长度、去除字符串中的重复字符

1 //计算 num 的 n 次幂 2 function numPow(num, n) { 3 if (n == 1) { 4 return num; 5 } 6 return num * numPow(num, n - 1); 7 } 8 9 //计算 n 的阶乘 10 function nFactorial(n) { 11 if (n == 1) { 12 return 1; 13 } 14 return n * nFactorial(n - 1); 15 } 16 17 //斐波那契数列,