问题
假设我有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"));