在 Java 中将 Set<Integer> 转换为 Set<String>

2022-09-03 17:31:07

有没有一种简单的方法可以在不迭代整个集合的情况下转换为?Set<Integer>Set<String>


答案 1

不。最好的方法是循环。

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());

答案 2

使用 Java8 流图并收集能力:

 Set< String >  stringSet = 
   intSet.stream().map(e -> String.valueOf(e)).collect(Collectors.toSet());