首页 > 编程知识 正文

java对list按顺序去重,java list根据某个字段去重

时间:2023-12-29 13:17:00 阅读:330455 作者:MEKY

本文目录一览:

java list如何去重

ListString list = new ArrayList();

/*list.add("abc");

list.add("abc");

list.add("def");

list.add("bcd");*/

SetString set = new LinkedHashSet();//这种方式保证去重后的元素相对位置不变

//SetString set = new HashSet();//这种方式去重后元素的位置很有可能变化了

set.addAll(list);

list.clear();

list.addAll(set);

for(String s : list){

System.out.println(s);

}

整个思路就是利用set中的元素是不重复的,来达到去重的目的

如何在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 ListString getNewList(ListString li){

ListString list = new ArrayListString();

for(int i=0; ili.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){

ArrayListString arr = new ArrayListString();

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) {

ListString list = new ArrayListString();

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中的重复的值

通过HashSet剔除

    // 删除ArrayList中重复元素,add进去顺序就变了不考虑顺序的话可以使用

    public static void removeDuplicate1(List list) {

        HashSet h = new HashSet(list);

        list.clear();

        list.addAll(h);

        System.out.println(list);

    }

java对List去重并排序,如何快速地去掉两个

Java8开始,对数值,集合等提供了Stream流操作,可以方便的对集合进行操作.

比如 筛选,过滤,去重, 映射, 排序,规约,收集 等操作

简单的参考代码如下

import java.util.Arrays;

import java.util.List;

import java.util.stream.Collectors;

// 使用Java8 的Stream特性 和 Java8的Lambda 语句

public class Demo {

public static void main(String[] args) {

// 需求: 集合去重,排序,得到一个新集合里面的元素是之前元素的平方

ListInteger list=Arrays.asList(5,2,2,1,3,4);

ListInteger listResult = list

.stream() // 得到流

.distinct() // 去重 5,2,1,3,4

.sorted() // 自然排序 , 也可以自定义排序规则1,2,3,4,5

.map(x-x*x) // 每个元素求平方1,4,9,16,25

.collect(Collectors.toList()); //收集并返回

System.out.println(listResult);//1,4,9,16,25

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。