繁体   English   中英

使用Java 8将一种类型的列表转换为另一种类型的数组

[英]Convert List of one type to Array of another type using Java 8

我需要将字符串列表转换为userdefinedType的数组,对于数组,我需要将字符串转换为long。

我已经使用以下方法实现了相同的目的

TeamsNumberIdentifier[] securityPolicyIdArray = securityPolicyIds.stream()
                .map(securityPolicy -> new TeamsNumberIdentifier(Long.valueOf(securityPolicy)))
                .collect(Collectors.toCollection(ArrayList::new))
                .toArray(new TeamsNumberIdentifier[securityPolicyIds.size()]);

有没有更好的方法来转换它?

您无需创建临时ArrayList。 只需在流上使用toArray()即可:

TeamsNumberIdentifier[] securityPolicyIdArray = securityPolicyIds.stream()
            .map(securityPolicy -> new TeamsNumberIdentifier(Long.valueOf(securityPolicy)))
            .toArray(TeamsNumberIdentifier[]::new);

但总的来说,我倾向于避免首先使用数组,而是使用列表。

我会这样写:

securityPolicyIds.stream()
                 .map(Long::valueOf)
                 .map(TeamsNumberIdentifier::new)
                 .toArray(TeamsNumberIdentifier[]::new);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM