所以我有这个方法,我需要返回数组列表的所有对象。但无法弄清楚如何(我甚至不知道我是否应该使用数组列表)。
问题是我将需要在一个return语句中传递未知数量的对象。所以我目前将它们存储在名为tables的数组列表中。
这是我的代码:
public GuestTable[] GetSeatingChart(String filename) {
GuestTable table1 = new GuestTable();
GuestTable table2 = new GuestTable();
GuestTable table3 = new GuestTable();
table1.AddGuestToTable(47);
table2.AddGuestToTable(53);
table3.AddGuestToTable(53);
tables.add(table1);
tables.add(table2);
tables.add(table3);
return new GuestTable[] {tables.get()};
}
我的问题在
return new GuesTable[] {tables.get()};
Arraylists没有getAll()
功能所以我有点卡住了。由于每次我不能在return语句中使用static时,数组列表中的元素数量(即表的数量)将不同。
这个项目是针对最终项目而且我是编程的新手。
-Thanks Mike
答案 0 :(得分:3)
ArrayList
有一个方法:
toArray(T[] arr);
所以你可以轻松地使用它:
GuestTable[] tablesArray = new GuestTable[tables.size()];
tables.toArray(tablesArray);
return tablesArray;
或者您只需更改方法签名即可返回ArrayLists
:
public ArrayList<GuestTable> GetSeatingChart(String filename) {
答案 1 :(得分:0)
添加到MouseEvent的优秀答案我必须完全支持他的最后一个例子。
问题是,当你已经有一个非常好的ArrayList对象时,为什么要尝试返回一个数组呢?
在我非常谦虚的意见中,数组不适合OOP范例。我很惊讶Java拥有它们。另一个例子可能是设计师莫莉溺爱C程序员(?)。数组及其处理过程邀请程序代码构造。
我的建议是阅读整个Collections框架的文档,或者找一个解释Arraylists等全部功能的教程,并停止使用数组。你会成为一个更好的OOP程序员(假设这是你的目标)。
当你继续使用Java 8 Streams时,你会明白为什么我[谦虚]认为数组已经过时了。