list根据某一属性去重

问题描述:c# list list中有重复的数据,去掉重复的数据,或删掉重复的数据 本篇文章给大家谈谈list根据对象的某个属性排序,以及list根据某一个属性去掉对象,希望对各位有所帮助,不要忘了收藏本站喔。

如何在List集合中去重

list根据某一属性去重的相关图片

如果已经有重复的数据在list里面了,可以先根据某个属性进行排序,然后再从头开始逐个对比数据,有重复的就remove掉。我不晓得list有没有自带的去重复函数,可以去研究下。

另外,在将数据加入到list的时候,可以先对list进行查找,看是否当前添加的数据存在否,如果存在,则不进行添加,不存在才加到list。

Java中如何去除List中的重复的值的相关图片

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

通过循环进行删除

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

通过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);。

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

}    // 方法二:通过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);。

Java中如何去除List中的重复的值的相关图片

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

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

                }。

            }

        }

    }

2.通过HashSet去重,代码如下:

public static void removeDuplicate1(List list) {。

        HashSet h = new HashSet(list);。

        list.clear();。

        list.addAll(h);。

    }

去除list集合中重复项的几种方法的相关图片

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

属性是????

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

                // 利用 Set 的特性,将所有项目放入 Set 。

//中即可移除重复的项目

Set<String> stringSet = new HashSet<String>();。

for (String element : duplicateArray) {。

stringSet.add(element);。

}

// Set.size() 为不重复项目的个数。

String nonDuplicateArray[] = new String[stringSet.size()];。

// 将 Set 中的项目取出放到 nonDuplicateArray 中。

Object[] tempArray = stringSet.toArray();。

for (int i = 0; i < tempArray.length; i++) {。

nonDuplicateArray[i] = (String) tempArray[i];。

}

如何去掉一个list中重复的数据

一个对象怎样算重复?

需要自己实现hashCode()和equals()方法来申明两个对象‘相等’的判断条件。

最简单的就是

一个或多个成员变量的值相等(比如id,name)等,就认为这两个对象相等。

在这种情况下,就好办了

Set set = new HashSet();。

set.addAll(list);。

到这一步,已经利用set的特性去重了。

接下来再把去重后的集合放到一个新的list去即可。

List newlist = new ArrayList();。

newlist.addAll(set);。

去重本身很简单。

复杂在对‘对象相等’概念的理解。

默认情况下,两个对象在继承了Object的方法后,

只有当堆内存地址相等的情况下,才相等。

所以,必须要自己重写equals和hashCode。

原文地址:http://www.qianchusai.com/list%E6%A0%B9%E6%8D%AE%E6%9F%90%E4%B8%80%E5%B1%9E%E6%80%A7%E5%8E%BB%E9%87%8D.html

缘何所起,缘何而起什么意思

缘何所起,缘何而起什么意思

过桥短文看图写话一年级,过桥短文看图写话一年级下册

过桥短文看图写话一年级,过桥短文看图写话一年级下册

citrus漫画1-42漫画,citrus漫画1-42漫画免费爱推米

citrus漫画1-42漫画,citrus漫画1-42漫画免费爱推米

ctms-50

ctms-50

极路由e30刷固件,极路由enjoy1200刷固件

极路由e30刷固件,极路由enjoy1200刷固件

sg5428,sg5428配置vlan互访

sg5428,sg5428配置vlan互访

一和元科技,一和元科技有限公司怎么样

一和元科技,一和元科技有限公司怎么样

发扬老黄牛精神作文,发扬老黄牛精神作文800字发言稿

发扬老黄牛精神作文,发扬老黄牛精神作文800字发言稿

身高185骑哈雷48,170骑哈雷883是什么样子

身高185骑哈雷48,170骑哈雷883是什么样子

英语课presentation话题,英语课presentation话题我们身边的英雄

英语课presentation话题,英语课presentation话题我们身边的英雄