数组字符串数组的列表

2022-09-01 14:53:49

我想做这样的事情:

private ArrayList<String[]> addresses = new ArrayList<String[3]>();

这似乎不起作用。在数组中存储多个地址(每个地址有 3 个字段)而不为其创建单独的类的最简单方法是什么?


答案 1

对 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[]>();

将工作。


答案 2
List<String[]> addresses = new ArrayList<String[]>();
String[] addressesArr  = new String[3];

addressesArr[0] = "zero";
addressesArr[1] = "one";
addressesArr[2] = "two";

addresses.add(addressesArr);