Java中,ArrayList应该是比较常用的一个对象了;那么它的stream()方法大家了解过吗?如果可以熟练使用stream()方法,就可以方便地获取list中元素的某个特定字段、对list中的元素进行筛选、或者把list转成map。
参考:https://blog.csdn.net/BHSZZY/article/details/122860048
如何获取不重复的集合?Collections?FlatMap?Set?HashSet?
(1) list.stream().map().collect()方法,可以获取list中JavaBean的某个字段,转成一个新的list。
(2) list.stream().filter().map().collect()方法,可以对list中的JavaBean进行筛选,保留符合条件的JavaBean,然后将JavaBean中的某个字段,转成一个新的list。
(3) list.stream().collect()方法,可以把list转为map,可以指定list的中的JavaBean的某个字段或JavaBean本身为map的key或value。(或者根据情况自定义map的key与value)
(4) list.stream().filter().collect()方法,可以先筛选出list中符合条件的JavaBean,然后把list转为map,可以指定list的中的JavaBean的某个字段或JavaBean本身为map的key或value。(或者根据情况自定义map的key与value)
如何给生成的List对象去重??把List对象赋给Set对象?
import java.util.*; public class Main { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(); // 添加元素到列表中 numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); numbers.add(6); numbers.add(7); numbers.add(8); numbers.add(9); numbers.add(10); numbers.add(10); // 重复的数字 System.out.println("原始列表:" + numbers); Set<Integer> set = new HashSet<>(numbers); // 将列表转换为Set集合 List<Integer> distinctNumbers = new ArrayList<>(set); // 再将Set转换为List System.out.println("去重后的列表:" + distinctNumbers); } }
参考:百度AI