问题

假设我有5个字符串数组对象:

String[] array1 = new String[];
String[] array2 = new String[];
String[] array3 = new String[];
String[] array4 = new String[];
String[] array5 = new String[];

我希望另一个数组对象包含这5个字符串数组对象。我该怎么做?我可以把它放在另一个阵列中吗?


#1 热门回答(126 赞)

喜欢这个:

String[][] arrays = { array1, array2, array3, array4, array5 };

要么

String[][] arrays = new String[][] { array1, array2, array3, array4, array5 };

(后一种语法可用于除变量声明之外的赋值,而较短的语法仅适用于声明。)


#2 热门回答(58 赞)

尝试

String[][] arrays = new String[5][];

#3 热门回答(19 赞)

虽然有两个很好的答案告诉你如何去做,但我觉得缺少另一个答案:在大多数情况下你根本不应该这样做。

阵列很麻烦,大多数情况下你最好使用Collection API

使用Collections,你可以添加和删除元素,并且有针对不同功能的专用集合(基于索引的查找,排序,唯一性,FIFO访问,并发等)。

虽然了解Arrays及其用法当然是好的和重要的,但在大多数情况下使用Collections使API更易于管理(这就是为什么新的库像Google Guava一样使用Arrays)。

因此,对于你的场景,我更喜欢列表列表,并使用Guava创建它:

List<List<String>> listOfLists = Lists.newArrayList();
listOfLists.add(Lists.newArrayList("abc","def","ghi"));
listOfLists.add(Lists.newArrayList("jkl","mno","pqr"));

原文链接