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

三国志战略版闪避和虚弱详解 - 游戏攻略指南 三国志战略版乐府建筑 - 全面攻略与升级指南 三国志战略版工坊分配攻略 - 最优资源分配方案 三国志战略版满级造币厂 - 升级攻略与属性详解 三国志战略版15000势力值攻略 - 快速提升势力值技巧 三国志战略版强攻战法全攻略 - 最强战法搭配与使用技巧 三国志战略版先锋测试服申请 - 率先体验全新内容 三国志战略版免费测试服 - 立即下载体验最新版本 三国志战略版乐府怎么建造 - 完整攻略指南 三国志战略版2024年剧本 - 全新策略玩法攻略指南 三国志战略版三军 - 最全攻略、武将搭配、阵容推荐 三国志战略版据点结构详解 - 游戏攻略指南 三国志战略版夏侯惇战法冲突详解 - 最全攻略指南 三国志战略版军屯有必要建造吗?军屯系统全面分析 三国志战略版援救战法全攻略 - 游戏战法详解与使用技巧 三国志战略版势力增长攻略 - 快速提升势力值技巧大全 三国志战略版战法克制攻略 - 完整克制关系表与策略指南 三国志战略版乐府有什么用 - 乐府功能详解与使用攻略 三国志战略版西凉路线攻略 - 完整发展指南 三国志战略版地级势力值表 - 最新势力排名数据 三国志战略版NPC城池攻略大全 - 城池类型与攻占策略 三国志战略版虎帐建筑 - 功能介绍与升级攻略 三国志战略版夏侯渊T0阵容推荐 - 最强阵容搭配攻略 三国志战略版怎么加灼烧 - 灼烧效果全攻略 三国志战略版主动战法兵锋详解 - 游戏攻略指南 三国志战略版虎帐建不了问题解决方案 - 游戏攻略 三国志战略版怎么增加造币厂 - 造币厂升级攻略大全 三国志战略版分城建设指南 - 建几个分城最佳策略 三国志战略版潼关之战地图 - 完整攻略与战略分析 三国志战略版乐府怎么获得 - 乐府获取方法详解