我想做这样的事情:
private ArrayList<String[]> addresses = new ArrayList<String[3]>();
这似乎不起作用。在数组中为每个地址存储3个字段的多个地址而不为其创建单独的类的最简单方法是什么?
最佳答案
对3个字符串使用第二个ArrayList,而不是原始数组。就是private List<List<String>> addresses = new ArrayList<List<String>>();
然后您可以拥有:
ArrayList<String> singleAddress = new ArrayList<String>();
singleAddress.add("17 Fake Street");
singleAddress.add("Phoney town");
singleAddress.add("Makebelieveland");
addresses.add(singleAddress);
(我认为这里的类型擦除可能会发生一些奇怪的事情,但我认为这并不重要)
如果您对使用原始数组一无所知,则只需进行较小的更改即可使示例工作。如其他答案所述,数组的大小不能包含在声明中。所以改变:
private ArrayList<String[]> addresses = new ArrayList<String[3]>();
至
private ArrayList<String[]> addresses = new ArrayList<String[]>();
将工作。