gpt4 book ai didi

java - 将 Set 转换为 Collection
转载 作者:塔克拉玛干 更新时间:2023-11-03 04:20:25 25 4
gpt4 key购买 nike

我有一个 Set<Object> .

我需要一个 Collection<String>从它。

我可以考虑制作一个 for 循环来添加和转换所有对象,但这很难看,而且可能也很慢。

@Override
public Collection<String> keys()
{
// props is based on HashMap
Set<String> keys = new HashSet<>();
for (Object o : props.keySet()) {
keys.add((String) o);
}
return keys;
}

什么是正确的方法?

最佳答案

如果你知道所有ObjectHashSet 里面是字符串,你可以直接转换它:

Collection<String> set = (Collection<String>)(Collection<?>)props.keySet();

Java 通过删除实现泛型,这意味着 HashSet 本身在运行时并不知道它是 HashSet<Object>。 --它只知道它是一个 HashSet ,编译器负责帮助程序员避免做会产生运行时异常的事情。但是,如果您知道自己在做什么,编译器就不会阻止您执行此转换。

关于java - 将 Set<Object> 转换为 Collection<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24973624/

25 4 0