在 Java 中将 Set<Integer> 转换为 Set<String>
有没有一种简单的方法可以在不迭代整个集合的情况下转换为?Set<Integer>
Set<String>
有没有一种简单的方法可以在不迭代整个集合的情况下转换为?Set<Integer>
Set<String>
不。最好的方法是循环。
HashSet<String> strs = new HashSet<String>(ints.size());
for(Integer integer : ints) {
strs.add(integer.toString());
}
简单且相对快速,简单易懂且富有表现力的东西可能是最好的。
(更新:)在Java 8中,如果你想隐藏循环,可以用lambda表达式做同样的事情。
HashSet<String> strs = new HashSet<>(ints.size());
ints.forEach(i -> strs.add(i.toString()));
或者,使用流,
Set<String> strs = ints.stream().map(Integer::toString).collect(toSet());
使用 Java8 流图并收集能力:
Set< String > stringSet =
intSet.stream().map(e -> String.valueOf(e)).collect(Collectors.toSet());