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

三国志战略版:落凤与轻勇飞燕战法详解 三国志战略版太学经验怎么分配 - 实用攻略指南 三国志战略版曹操属性搭配与阵容推荐 三国志战略版技能加点公式与培养指南 三国志战略版赵云伤害公式详解 - 原创攻略 三国志吕布传破解版 - 免登录在线畅玩 | 经典战棋游戏 三国志8重制版CT工具使用说明 三国志11最强阵容搭配攻略 - 高效武将组合推荐 三国志战略版 连击状态详解 - 游戏机制与搭配攻略 三国志战略版被动战法顺序解析 - 游戏机制详解 三国志战略版张角最强阵容搭配推荐 三国志武力值真实排名 - 基于正史的武将战斗力分析 三国志战略版必练阵容推荐 - 新手阵容搭配指南 三国志战略版S1战法详解 - 新手战法指南 三国志战略版孙尚香吴骑阵容攻略 - 详细搭配与实战技巧 三国志战略版赵云单开攻略 - 新手开荒与配将指南 三国志战略版:新手前48小时关键攻略 | 朴素实用指南 三国志战略版:赵云刷5级地详细攻略 三国志战略版视野有什么用?详细作用解析 三国志战略版回归邀请码填写方法 - 简单教程 三国志战略版三势吕阵容搭配攻略 - 高爆发输出阵容详解 三国志战略版顶配爆头骑阵容搭配与实战攻略 三国志战略版同盟组长指南 - 管理与战略分享 三国志战略版战法一览表 - 游戏战法全收录 三国志战略版S3普通功勋获取指南 - 简明攻略 三国志9中的二乔:大乔与小乔人物介绍 三国志战略版群雄兵种详解 三国志战略版姜维智计攻略 - 实用搭配与技巧 三国志战略版桃园战法详解 - 阵容搭配与实战技巧 三国志张飞战法推荐 - 实用搭配攻略