gpt4 book ai didi

java - 流媒体问题: Best way to get property out of a List of Lists

转载 作者:行者123 更新时间:2023-11-30 01:42:34 25 4
gpt4 key购买 nike

我创建了一个包含 100 种配置的列表。我已将该列表分为 10 组,所以现在我有 List<List<Config>> 。所有这些配置都有一个共同的属性值,domainCode 。对我来说获得该属性的最佳方式是什么?假设配置域类如下所示:

public class Config {

private String configId;
private String portfolioId;
private String domainCode;

public Config(String configId, String portfolioId, String domainCode) {
this.configId = configId;
this.portfolioId = portfolioId;
this.domainCode = domainCode;
}

public String getConfigId() { return configId;}
public String getPortfolioSymbolCode() { return portfolioId;}
public String getDomainCode() { return domainCode; }
}

我构建了 100 个,然后将它们分组:

List<Config> configs = getAllConfigs();
List<List<Config>> partitionedConfigs = new ArrayList<>();
if (configs != null) {
AtomicInteger counter = new AtomicInteger();
partitionedConfigs.addAll(configs.stream()
.collect(Collectors.groupingBy(it -> counter.getAndIncrement() / 10))
.values());
}

我通过partitionedConfigs到一个方法。该方法需要domainCode 。有什么有效的方式获得单domainCodepartitionedConfigs ?即使有100个Config对象的域代码是唯一的,只会有一个域代码。这就是我的方法需要找到的。

最佳答案

你可以从configs中获取它并自行列出

List<String> domains = configs.stream()
.map(Config::getDomainCode)
.collect(Collectors.toList());

或者也来自partitionedConfigs列表

 List<String> domains = partitionedConfigs.stream()
.flatMap(List::stream)
.map(Config::getDomainCode)
.collect(Collectors.toList());

如果列表中的每个对象都有相同的域名,那么您可以使用findFirst

String domain = configs.stream()
.findFirst()
.map(Config::getDomainCode)
.orElse(null); // if list is empty give some default value

来自partitionedConfigs列表

String domain = partitionedConfigs.stream()
.flatMap(List::stream)
.findFirst()
.map(Config::getDomainCode)
.orElse(null); // if list is empty give some

关于java - 流媒体问题: Best way to get property out of a List of Lists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59445588/

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