有关二维数组的赋值
public class HelloWorld {
public static void main(String[] args) {
// 定义两行三列的二维数组并赋值
String [][] names = new String[2][3];
names = {{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
// 通过二重循环输出二维数组中元素的值
for (int i = 0; i < names.length ; i++) {
for (int j = 0; j < names[i].length; j++) {
System.out.println(names[i][j]);
System.out.println( );
}
System.out.println();
}
}
}
这么写在赋值那个地方报错了,不明白为什么是错的,我先声明并分配空间以后再赋值不可以么?
辛苦大家教教我这个菜鸟~~~
= =没有names={{}}这样纸赋值数组的
数组常量只能 用于初始化
public static void main(String[] args) {
// 定义两行三列的二维数组并赋值
String [][] names = new String[2][3];
String [][] temp = {{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
names = temp;
// 通过二重循环输出二维数组中元素的值
for (int i = 0; i < names.length ; i++) {
for (int j = 0; j < names[i].length; j++) {
System.out.println(names[i][j]);
System.out.println( );
}
System.out.println();
}
}
这样定义:
// 定义两行三列的二维数组并赋值
//String [][] names = new String[2][3];
String[][] names = {{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
或者这样写:
// 定义两行三列的二维数组并赋值
String [][] names = new String[][]{{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
这是定义的时候初始化
你上面的那种写法 new String[2][3]已经分配了内存空间,所以不能再这样初始化了,只能单个初始化每个数组元素。
因为你new了之后就初始化了(。具体你可以去看 堆栈内存
String [][] names = new String[2][3];
String [][]temp = {{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
names=temp;
这样写就可以了。