Java 如果找到匹配项,如何从列表中提取项并添加到新列表中?

Java 如果找到匹配项,如何从列表中提取项并添加到新列表中?,java,android,Java,Android,假设我有一个清单如下 创建列表 final List<WifiNetworkSuggestion> result = wifiManager.getNetworkSuggestions(); 这里可能有多个具有不同SSID的列表对象,如上所示 如何仅提取找到SSID=“Test123”的列表对象,并将其单独放入具有该列表对象的新列表中,但保持相同的约定。例如,我希望我的新列表如下 [WifiNetworkSuggestion[ SSID="Test123",

假设我有一个清单如下

创建列表

 final List<WifiNetworkSuggestion> result = wifiManager.getNetworkSuggestions();
这里可能有多个具有不同SSID的列表对象,如上所示

如何仅提取找到SSID=“Test123”的列表对象,并将其单独放入具有该列表对象的新列表中,但保持相同的约定。例如,我希望我的新列表如下

[WifiNetworkSuggestion[ SSID="Test123", BSSID=null, FQDN=null, isAppInteractionRequired=false, isUserInteractionRequired=false, isCredentialSharedWithUser=true, isInitialAutoJoinEnabled=true, isUnTrusted=false ]]
我想通过删除我不想要的东西来修改当前的列表

result.removeIf(list -> !list.contains("SSID="Test123""));
但是没有用

编辑

如果我按照建议使用流,我如何才能只获得我想要的列表对象

List<WifiNetworkSuggestion> flat = 
result.stream()
    .flatMap(List::stream)
    .collect(Collectors.toList());
列表平面=
result.stream()
.flatMap(列表::流)
.collect(Collectors.toList());

您可以使用流API的
filter()
方法

Stream<T> filter(Predicate<? super T> predicate)

streamfilter(PredicateHi,您可以使用Stream(如果您的java版本为8或更高版本)使用筛选操作并将结果收集到新列表中我可以使用流,只是在查看它。我可以找出如何将整个列表转换为单个列表,但不能找出如何提取所需的单个列表。如果有意义的话..我编辑了我上面的问题。请您输入WifiNetworkSuggestion类的代码以了解列表是结构化的?WifineTworksSuggestion不是我编写的自定义类。我在Android的实际文档中添加了一个URL。该应用程序可以创建多个“配置”,每个“配置”都会添加到此列表中,当我查询它时,它会在列表中返回一个列表,如上图所示。我只想获得一个包含说明符的列表ic SSID并将其放入新列表中以便删除。稍后将对此进行一次尝试。我会让您知道我的进展情况-谢谢。做了这个把戏-很好的一个!必须阅读此内容-以前从未使用过。Lambda和stream的良好演示:
Stream<T> filter(Predicate<? super T> predicate)
List<WifiNetworkSuggestion> newList= result
    .stream()
    .filter(suggestion-> "Test123".equals(suggestion.getSsid()))
    .collect(Collectors.toList());