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话题我们身边的英雄

三国志大战DS 街机版 - 经典策略游戏回顾 nds三国志ds2金手指汉化版 - 游戏专题介绍 三国志8重制版中文语音 - 朴素资讯页 三国志战略版S级战法【智计】详解 - 实用攻略 三国志11大都市在哪 - 游戏攻略与建造方法 三国志战略版怎么迁城 - 详细迁城步骤与方法指南 三国志战略版 战俘营系统详解 - 玩家攻略与机制说明 三国志战略版快速升级攻略 - 新手高效升级指南 三国志11百出特技谁有 - 完整武将列表 三国志13手机汉化版免费下载 - 安全稳定中文版 三国志战略版速度搭配攻略 | 原理与实用技巧 三国志战略版守军阵容搭配推荐 - 实用守城阵容指南 三国志战略版铜币多少钱 - 游戏货币价格参考 三国志战略版S3宝物特技详解 三国志11遗迹触发条件一览 - 游戏攻略 三国志战略版盾兵阵容搭配指南 三国志战略版铜币最大化攻略 - 实用技巧与资源管理指南 三国志战略版武将速度详解 - 游戏攻略 三国志战略版兵书玩法详解 三国志战略版突击战法全解析 - 玩家攻略 三国志大战DS中文版 - 经典掌机策略游戏介绍 三国志9 国号汉势力介绍 - 经典策略游戏专题 三国志战略版魏盾曹操阵容攻略 - 简明实用指南 三国志战略版甘宁武将推荐 - 属性、战法与阵容搭配指南 三国志战略版官员职位详解 三国志战略版满红麒麟弓阵容搭配与实战攻略 三国战纪-乱世英雄整合版3合1 - 经典街机游戏回顾 果宝三国单机破解版下载 - 免费绿色经典游戏 三国志战略版周瑜怎么打 - 实用攻略与阵容推荐 三国志战略版郭嘉输出攻略 - 高爆发谋士使用指南