从数组列表

时间:2016-12-13 23:03:00

标签: java arrays arraylist

所以我有这个方法,我需要返回数组列表的所有对象。但无法弄清楚如何(我甚至不知道我是否应该使用数组列表)。

问题是我将需要在一个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

2 个答案:

答案 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时,你会明白为什么我[谦虚]认为数组已经过时了。