Java填写二维表?

时间:2016-12-10 21:39:59

标签: java arrays

我需要创建x个带有一些字符的数组(例如8478329478)。现在我该怎么做?

这是我写的那段代码

public class ArrayClass2 extends BaseClass{
 private int[] myNumbers;
 public ArrayClass2(int length){
  super(length);
 }
 public int getValue(int index){
  if(!isOne(index))
   return myNumbers[index];
  else
   return 1;
 }
}

这不起作用

DN.java:19:错误:非法开始表达

错误指向“outcomeList”之后的第二个[]。

我做错了什么,或者我怎么做我想做的事?

1 个答案:

答案 0 :(得分:0)

解决方案

更改

char[][] consequenceList = new char[xNumber][10];

char[][] consequenceList = new char[xNumber][];

然后改变

consequenceList[i][] = sc.nextLine().toCharArray();

consequenceList[i] = sc.nextLine().toCharArray();

解释

在Java中,原始数组本身就是一个对象。 (它甚至扩展Object)因此,Java中的二维数组是数组对象的数组对象。由于没有必要在实例化时为数组的每个元素提供值,因此在实例化时不必为顶级数组的每个元素创建数组对象。

因此,语法<type>[][] <identifier> = new <type>[<N>][];在顶层创建了一个2-d N元素数组,但实际上并没有用二级数组填充任何元素。

这很有用,因为sc.nextLine().toCharArray()返回整个数组对象。那么你想要做的是将sc.nextLine().toCharArray()的返回值分配给顶级数组中的单个元素(而不是必须将其元素复制到预先存在的二级数组中)

您访问多维数组的顶级数组中的单个元素的方式与访问单维数组中的单个元素的方式完全相同。这就是赋值语句使用consequenceList[i]的原因,即使声明是consequenceList[i][]