有铸造套装吗?
我有一个构造函数,它将Set<String> things
作为参数,我想将一个字段TreeSet<String> stuff
设置为这个初始的东西。但是,我一直收到错误。 Java不喜欢我的声明
stuff = things;
所以我想知道是否将所有元素放入列表然后将该列表的元素移动到东西中是一个很好的解决方案,或者是否有更好的方法。
以下是我提出的建议:
public class Anagrams {
private TreeSet<String> allWords;
//pre: the given dictionary must be in alphabetical order, if null throws an
// illegalArgumentException
//post: creates a new anagram solver
public Anagrams(Set<String> dictionary) {
if(dictionary == null) {
throw new IllegalArgumentException();
}
for(String word : dictionary){
String temp = word;
allWords.add(word);
}
}
答案 0 :(得分:2)
通过从TreeSet<String>
:
things
来实例化
stuff = new TreeSet<String>(things);
答案 1 :(得分:0)
这是因为TreeSet
是Set
的孩子,所以你不能将一个集合分配给树集(另一种方式是可能的)
因此您需要明确投射(提供things
是TreeSet<String>
:
stuff = (TreeSet<String>) things;