使用“args”,但方法仍然没有采取多个数组作为参数?
问题描述:
我想要一个方法,需要x的数量ArrayList<>
作为参数。当我使用参数时,这不起作用。参数只保留给int和String等吗?为什么参数不成为包含我的数组列表的新数组?我认为有一种方法可以将多个参数值赋给一个方法,该方法会变成方法内部的数组?使用“args”,但方法仍然没有采取多个数组作为参数?
ArrayList<String> list1 = new ArraytList();
list1.add("1");
ArrayList<String> list2 = new ArrayList();
list2.add("2");
list2.add("3");
的打印方法:
public void print(ArrayList<String> args){
for(int i = 0; i < args.length; i++){
for(int j = 0; j < args[i].size(); j ++){
System.out.println(args[i].get(j));
}
}
}
不工作
答
printElements
需要ArrayList<String>
类型的单个参数,但你想给它ArrayList
类型的两个参数。
答
使用
first.addAll(second);
printElements(first);
+1
'addAll'返回一个'boolean',而不是一个新的列表。 –
+0
对不起我的坏。更新它。感谢@JoeC的纠正 – stinepike
那是因为你想传递两个的ArrayList到您的方法时,将只接受一个。 –
是的,你的printElements只有一个参数,但你传递了两个参数。 – steve
此外,我假设您使用lambda表达式使您的代码更短,更简洁?在这种情况下,你可以减少你的lambda表达式到这个-----> args.forEach(System.out :: println); –