首页 > 编程知识 正文

java对象中list为null,javalist去重

时间:2023-05-05 17:51:06 阅读:32623 作者:1869

前言:使用方式分类java8的新特性去重使用LinkedHashSet删除list中的重复数据3 .使用list集合中的contains方法去重(循环扫描)4.使用去除双for循环重的HashSet

前言消除java中list重量的五种方法

一、使用方式分类java8的新特性重构代码。 示例:

publicstaticvoidmain (string [ ] args ) listintegerlist=arrays.as list (7、7、8、8、8、11、11、9 ); list.foreach (system.out :3360打印; System.out.println (' '; system.out.println (-------------- ) ); listintegerdislist=list.stream (.distinct ).collect (collectors.to list ) ); dislist.foreach (system.out :3360打印; }输出结果为以下:

使用链接的散列从列表中删除重复的数据代码。 示例:

publicstaticvoidmain (string [ ] args ) listintegerlist=arrays.as list (7、7、8、8、8、11、11、9 ); system.out.println (列表; listintegerdislist=new ArrayList (newlinkedhashset ) list ); system.out.println(dislist ); }输出结果为以下:

使用List集合中的contains方法,按如下方式重新执行代码: 示例:

publicstaticvoidmain (string [ ] args ) listintegerlist=arrays.as list (7、7、8、8、8、11、11、9 ); //定义与需要去除重量的集合长度相同的集合listintegernewlist=new ArrayList (list.size ) ); system.out.println (列表; for(intI=0; i list.size (; I ) if (! newlist.contains(list.get(I ) ) new list.add (list.get ) I ); }list=newArraylist () newlist; system.out.println (列表; }输出结果为以下:

4 .双层for环路的去除代码如下。

publicstaticvoidmain (字符串[ ] args ) /在此处,不能直接使用在Arrays.asList中生成的集合操作。 必须用Listintegerlist=newArraylist ) ArrayList封装for(intI=0; Ilist.size(-1; I ) for(intj=I1; j list.size (; j ) if(list.get(I ).equals (list.get (j ) ) list.remove (list.get ) j ); //list在删除循环时,由于集合长度减少,下标也相应地减少了一j----; } }系统. out.println (list ); }输出结果为以下:

要使用HashSet重新计算代码,请执行以下步骤(

publicstaticvoidmain (string [ ] args ) listintegerlist=arrays.as list (7、7、8、8、8、11、11、9 ); //在此,基于hashSet不能添加重复要素的原理,hashsetintegerset=new hashset (list.size ) ); listintegernewlist=lists.new ArrayList (; list.foreach (p-{ if } set.add (p ) ) newlist.add ); (); 列表=new ArrayList () newlist; system.out.println (列表; }输出结果为以下:

以上就是我今天要说的内容。 我希望对你有帮助。 如果可能的话,请关注。 谢谢

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