Java中如何去除List中的重复的值

Java中如何去除List中的重复的值,第1张

属性是

先给你一个看看是不是你需要的好了,

                // 利用 Set 的特性,将所有项目放入 Set 
//中即可移除重复的项目
Set<String> stringSet = new HashSet<String>();
for (String element : duplicateArray) {
stringSetadd(element);
}
// Setsize() 为不重复项目的个数
String nonDuplicateArray[] = new String[stringSetsize()];
// 将 Set 中的项目取出放到 nonDuplicateArray 中
Object[] tempArray = stringSettoArray();
for (int i = 0; i < tempArraylength; i++) {
nonDuplicateArray[i] = (String) tempArray[i];
}

去掉重复对象的方案很多, 比如利用set去重等

参考代码

import javautilArrayList;
import javautilHashSet;
public class Test {
public static void main(String[] args) {
ArrayList<Object> list =new ArrayList<Object>();
listadd(8);
listadd(2);
listadd(8);
listadd(7);
listadd(6);
listadd(5);
listadd(2);
listadd(7);
Systemoutprintln("原始集合"+list);

//方案1  不考虑list原始顺序的情况下
HashSet<Object> set = new HashSet<Object>(list);//把list作为参数放到HashSet的构造函数里,去掉重复元素
ArrayList<Object> result1= new ArrayList<Object>(set);//把set作为参数放到ArrayList构造函数里
Systemoutprintln(result1);//输出result1


//方案2   考虑list的原始顺序
ArrayList<Object> result2 = new ArrayList<Object>();
for (int i = 0; i <listsize(); i++) {
if(!result2contains(listget(i))) {//如果没有重复元素 ,才添加进结果集合result2
result2add(listget(i));
}
}
Systemoutprintln(result2);//输出result2
}
}

输出

原始集合[8, 2, 8, 7, 6, 5, 2, 7]
[2, 5, 6, 7, 8]
[8, 2, 7, 6, 5]

这个可简单可复杂。

简单的:利用集合

a = list(set(a)) #这样就可以了,是不是很简单

复杂的:

就是先对列表排序,然后比较相邻元素是否相同,相同的则删除后面的。大体算法思路,代码自己写吧

当然还有其他的算法

-----------------------------------------------------------------------------------

额, 不好意思,看错了

def Q(a):
    aa=[]
    for i in a:
        if acount(i)==1:
            aaappend(i)
    return aa

这个就可以了,利用 listcount(obj) 计算obj在list中出现的次数进行判断

最好的办法是用Set,因为Set里面存放的数据是不重复的。
如果你不想用Set,那还可以向下面这样处理。
List list_tmp = new ArrayList(); //建立一个用于临时存放不重复list元素的List集合。
for(Object obj:list){
//可以根据需要,在这里加上强制转型。
//如list里面存放的是一个User对象,那么加上User u = (User) obj;
if(!list_tmpcontains(obj)){ //注意contains方法是通过equals方法进行比较的所以你要根据你自己的需要看是否需要重写list对象里面的equals方法。
list_tmpadd(obj);//如果上面加了强制转型,这里需要写list_tmpadd(u);
}
}

c#怎样消除一个list里面重复的元素
你用的是list 吧?试试这个
IList<int> nlist = listDistinct()ToList();

很多集合处理,我都推荐用Java8的流来处理,是非常简单易懂的

其实你这个问题,总来说就是按照集合中的字符串进行分类,并统计数量,Stream只用简单的代码就完成复杂的 *** 作,代码如下

List<String> list = ArraysasList("day", "walipo", "day", "walipo", "legeand", "day", "douwbo", "day", "day");
Map<String, Long> collect = liststream()collect(CollectorsgroupingBy(Functionidentity(), Collectorscounting()));
Systemoutprintln(collect);

最后返回的Map就是以字符串为key,value为其个数


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13400212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存