首页 > 编程知识 正文

java数组去重排序,java中list集合去重

时间:2023-05-06 12:32:01 阅读:32624 作者:3569

打包广告; 导入lombok.data; import lombok.extern.slf4j.slf4j; import org.junit.Test; import java.util.*; import Java.util.stream.collectors; @Slf4jpublic class JunitTest{

//排序@Test public void sort () listintegerlists=Arrays.aslist ) 1、1、2、3 ); //升序lists.sort (comparator.com paring (integer :3360 intvalue ); lists.stream ().sorted ) ).collect ) collectors.tolist ) ); //降序lists.sort (comparator.com paring (integer :3360 intvalue ).reversed (); lists.stream ().sorted (comparator.reverse order ) ) ).collectors.tolist ); //集合对象排序ListUser list=new ArrayListUser (; list.add (新用户(5,' zhagnsan ',18 ); list.add (新用户(4,' libai ',19 ); list.add (新用户(1,' wangwu ',22 ); list.add (新用户(2,' lihua ',11 ); //id顺序-1list.sort (comparator.com paring ) user33603360getid ); 按//id排序-2collections.sort (列表,new ComparatorUser () @ overridepublicintcompare (usero 1,User o2 ) { retur no1.} (//去水@Test public void removal ()//1.使用链接的hashset删除arraylist中的重复数据) /删除重复数据) /保持添加数据的顺序的arraylistintegerararay linkedhashsetintegerlinkedhashset=newlinkedhashset (ArrayList ); arraylistintegerintegers=new ArrayList (链接的散列集); 系统. out.println (integers; //2 .使用Java 8的新功能stream进行List等待//java 8 stream api。 使用steam的distinct ()方法返回由对象的equals () )方法比较的不同数据组成的流。 //收集所有区域数据的List使用collectors.to list (ArrayList=new ArrayList ) Arrays.aslist、1、2、3、3 ) ); system.out.println(Arraylist; listintegerintegerlist=ArrayList.stream (.distinct ).collect ) collectors.tolist ); 系统. out.println (integer list; //3.HashSet无法添加重复数据的特性//HashSet无法保证添加顺序,因此仅保证顺序作为判断条件: ArrayList=new ArrayList (arrays.as list (1,1,2,2,2 ) listintegerresult=newarraylistinteger (ArrayList.size (); for (integerstr :阵列) if (set.add (str ) ) result.add (str ) ); } } arrayList.clear (; Arraylist.addall(result; //4 .在list的contains方法中循环遍历、排序、仅添加一次数据,以及ArrayList=new ArrayList (arrays.as list (1,1,2,3,3 ) ) listintegerintegerarraylist=newarraylistinteger (ArrayList.size ); 集成器阵列(for ) if (! result.contains(integer ) ) result.add (integer ); } } arrayList.clear (; Arraylist.addall(result; //5 .在双for循环中ArrayList=new ArrayList (arrays.as list (1,1,2,3,3 ) ); for(intI=0; i arrayList.size (; I ) for(intj=0; j arrayList.size (; j () if ) I!=jArraylist.get(I )==arrayList.get(j ) j ) ) Arraylist.remove ) Arraylist.get ) j ); } } } //6.根据年龄性别,ListUser list=new ArrayListUser (); list.add (新用户(5,' zhagnsan ',18 ); list.add (新用户(4,' libai ',19 ); list.add (新用户(1,' wangwu ',18 ); list.add (新用户(2,' lihua ',11 ); arraylistusercollect=list.stream (.collect (collectors.collecting and then ) collectors.tocollection )-newtreection }

@Data class User{ private int id; 私有字符串名称; 私密int age; 私有用户(intid,String name,int age ) { this.id=id; this.name=name; this.age=age; } }

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