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

三国志战略版高级建筑乐府 - 建筑攻略与升级指南 三国志战略版打地等级攻略 - 土地资源获取指南 三国志战略版拔城时间攻略 - 最全攻城时间表 三国志战略版势力特性详解 - 魏蜀吴三大势力全攻略 三国志战略版百骑劫营攻略大全 - 玩法技巧与阵容推荐 三国志战略版工坊需要多少钱 - 完整费用指南2024 三国志战略版NPC城池攻打攻略 - 详细技巧与阵容推荐 三国志14战法图鉴 - 全战法技能效果详解 三国志战略版7级工坊推荐 - 最强配置与策略指南 三国志战略版虎帐最高多少兵 - 完整攻略指南 三国志战略版盾墙剧本攻略大全 - 最新玩法技巧详解 三国志战略版先锋测试服福利 - 豪华礼包等你来领 三国志战略版势力介绍 - 魏蜀吴群雄详解攻略 三国志战略版虎帐攻略 - 最新虎帐玩法技巧大全 三国志战略版必中攻略 - 必中技能与武将详解 三国志战略版先锋测试服申请 - 率先体验全新内容 三国志战略版强攻攻略 - 最强进攻战术详解 三国志战略版虎杖任务攻略大全 - 完成指南与奖励详解 三国志战略版测试服 - 最新版本抢先体验 | 官方测试服务器 三国志战略版军屯有必要吗?深度解析军屯系统价值与策略 三国志战略版武将卡等级系统详解 - 完整攻略指南 三国志战略版军屯多少级 - 军屯系统等级详解与升级攻略 三国志战略版马超兵锋攻略 - 马超技能搭配与阵容推荐 三国志战略版手游高级建筑攻略 - 建筑升级指南 三国志战略版如何提高势力值 - 完整攻略指南 三国志战略版128吕布攻略 - 满级吕布属性技能阵容搭配 三国志战略版15000声望上限攻略 - 声望获取与提升指南 三国志战略版测试服怎么申请 - 完整申请指南 三国志战略版大型军团势力值排行榜 - 最新战力数据分析 三国志战略版虎杖多大 - 虎杖属性技能详解