假设我在Java 8中定义了以下对象:
String[] filledArr = new String[] {"Hallo"};
String[] moreFilledArr = new String[] {"Hallo", "duda"};
String[] emptyArr = new String[] {};
现在我想创建一个包含这两个字符串数组的数组。我该怎么写?
我试过了:
String[][] = {emptyArr, filledArr, moreFilledArr};
这行不通。然后我尝试了:
(String[])[] = {emptyArr, filledArr, moreFilledArr};
使用第二个版本中的括号,我想表明数组是字符串数组之一,而不是二维数组。仍然没有成功。
正确的方法是什么?有吗?或者我必须求助于ImmutableList
来创建一个不可变的数据结构。
您忘记给变量起个名字了吗?这两者都有效。
String[][] array = {emptyArr, filledArr, moreFilledArr};
String[][] array = new String[][] {emptyArr, filledArr, moreFilledArr};
我建议您阅读基本的Java语法规范和教程。从Oracle公司免费提供的Java教程开始。
这两个也是对的String[][]数组={emptyArr,filled Arr,moreFilled Arr};
String[][] array = new String[][] {emptyArr, filledArr, moreFilledArr};
请也检查一下Java中的数组文档查看更多说明
使用java文档的数组教程,
我不得不添加这个作为评论,但我不能,我想用上面提到的更多资源进行扩展,谢谢
我们还可以通过初始化并分配给Object类型的一维数组来实现它。下面是这样的。
String[] filledArr = new String[] {"Hallo"};
String[] moreFilledArr = new String[] {"Hallo", "duda"};
String[] emptyArr = new String[] {};
Object[] newArr = {filledArr, moreFilledArr, emptyArr};
如果你想打印这个newArr中的值,那么你应该使用下面的代码。
for (int i=0;i< newArr.length; i++){
Arrays.stream(((String[]) newArr[i])).forEach(System.out::println);
}