在Java中是否有一個構造函數可以接受數組或集合?我一直在擺弄這一段時間,但我認爲這是不可能的。Java:一個構造函數或方法將接受數組或列表或...?
我希望能夠初始化MyClass
,像這樣:
MyClass c = new MyClass({"rat", "Dog", "Cat"});
而且這樣的:
LinkedList <String> l = new <String> LinkedList();
l.add("dog");
l.add("cat");
l.add("rat");
MyClass c = new MyClass(l);
這是MyClass的樣子。我可以做什麼XXX以便這能起作用?我知道我可以重載構造函數,但是如果我可以最小化代碼,這將是非常棒的權利?
public class MyClass{
private LinkedHashSet <String> myList;
public MyClass(XXX <String> input){
myList = new LinkedHashSet <String>();
for(String s : input){
myList.put(s);
}
}
}
不錯的一個。我可能會這樣做,因爲從'List'中獲取'String []'比基於'String []'構造'List '更便宜。 –
BalusC
2010-07-11 01:01:21
BalusC - 你錯了。 Arrays.asList(..)返回與不可變列表相同數組的視圖。幾乎沒有成本。另一方面,轉到String []需要將所有引用複製到新分配的數組中 – user44242 2010-07-11 09:26:38
@usersmarvin:感謝您的支持!順便提一下,爲了通知用戶關於不屬於他們自己的問題/回答的評論,在暱稱的前面放置一個「@」,例如, '@ BalusC'。爲了找到一個匹配,至少需要名字前3個字符。 – BalusC 2010-07-14 14:54:50