gpt4 book ai didi

java - 有没有办法将 steam.map() 单个输出转换为列表

转载 作者:行者123 更新时间:2023-11-29 04:06:04 25 4
gpt4 key购买 nike

我有一个列表,其中包含以逗号分隔的值作为单个元素。喜欢:

   List<String> personOutputList=new ArrayList<>();
personOutputList.add("nexus 9k, nexus 9000,n9k");
personOutputList.add( "nexus 7k, nexus 7000,n7k");
personOutputList.add("nexus 9000");
personOutputList.add("utility issue");
personOutputList.add("network availability issue");
personOutputList.add("nexus 7000");
personOutputList.add("nexus 9k issue");

是否可以将逗号分隔的元素转换为单独元素列表的一部分,例如:

[nexus 9k, nexus 9000,n9k, nexus 7k, nexus 7000,n7k, nexus 9000, utility issue, network availability issue, nexus 7000, nexus 9k issue]

outputSet=outputSet.stream()
.map(item->item.split(","))
.collect(Collectors.toCollection(HashSet::new));

但是返回的是String[]字符串数组,我想当成List元素

[nexus 9k, nexus 9000,n9k, nexus 7k, nexus 7000, n7k, nexus 9000, utility issue, network availability issue, nexus 7000, nexus 9k issue]

我需要这样的输出:套装包含:[nexus 7000、nexus 7k、nexus 7000、n7k、nexus 9k、n9k、nexus 9000、nexus 9k 问题、实用程序问题、网络可用性问题]

不是这样的:集合包含什么? : [[nexus 7k, nexus 7000, n7k], [nexus 9k, nexus 9000, n9k]]

最佳答案

你的 .map(item->item.split(","))步骤转换 Stream<String>Stream<String[]> .由于您将每个元素映射到多个元素,因此您应该使用 flatMap为了得到一个单位Stream<String>所有这些元素,稍后可以收集到 Set 中.

看起来你想要一个 Set所有独特的元素,在拆分逗号分隔后 String小号:

Set<String> outputSet = 
personOutputList.stream()
.flatMap(s -> Arrays.stream(s.split(","))
.collect(Collectors.toSet());

或者,如果您想确保获得 HashSet :

HashSet<String> outputSet = 
personOutputList.stream()
.flatMap(s -> Arrays.stream(s.split(","))
.collect(Collectors.toCollection(HashSet::new));

关于java - 有没有办法将 steam.map() 单个输出转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58608389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com