在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