怎么用Lambda进行list合并以及去重

Jessica丶 发布于 2021/11/16 17:01
阅读 1K+
收藏 1

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

List<String> list = new ArrayList<String>();
list.add("a,b");
list.add("a,c");
list.add("c,d");

上面的list集合里面的,放在一起,用逗号切割,然后去重,返回{"a","b","c","d"}这个集合,用Lambda怎么实现

加载中
0
sprouting
sprouting

 

List<String> list = new ArrayList<>();
list.add("a,b");
list.add("a,c");
list.add("c,d");

List<String> collect1 = list.stream().map(obj -> Arrays.asList(obj.split(","))).flatMap(Collection::stream).distinct().collect(Collectors.toList());
System.out.println(collect1);
0
出云羲仪
list.stream()
        .map(item -> item.split(","))
        .flatMap(Stream::of)
        .distinct().collect(Collectors.toList());
0
小伯恩
小伯恩

引用来自“出云羲仪”的评论

list.stream()
        .map(item -> item.split(","))
        .flatMap(Stream::of)
        .distinct().collect(Collectors.toList());

你这个方法是最好的

0
o
osc_74527723
System.out.println(Arrays.stream(list.stream().collect(Collectors.joining(",")).split(",")).collect(Collectors.toSet()));
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部