【发布时间】:2022-01-14 02:49:42
【问题描述】:
我有以下实体(为简洁起见省略了不必要的部分):
public class Site {
private UUID uuid;
private UUID countryUuid;
}
public class Country {
private UUID uuid;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String code;
@Column(nullable = false)
private Currency currency;
}
我有List<UUID> 的Site 并尝试为siteUuid 和Currency 对创建Map<UUID, Currency>。为了使用国家/地区列表,我尝试了如下所示的操作,但没有管理。
// get site list
final List<SiteDTO> siteList = siteService.findAllByUuidIn(siteUuidList);
// then get country list
final List<CountryDTO> countryList = siteList.stream()
.map(SiteDTO::getCountry).collect(Collectors.toList());
// then finall try to map them to Currency
final Map<UUID, CountryDTO> uuidCurrencyMap = countryList
.stream().collect(Collectors.toMap(CountryDTO::getUuid, Function.identity()));
但是,uuidCurrencyMap 提供 countryUuid - Currency 对,但我需要 siteUuid - Currency 对。那么,有可能吗?
【问题讨论】:
-
uuidCurrencyMap不包含国家而不是货币吗? -
uuidCurrencyMap包含货币
标签: java lambda stream hashmap java-stream