① java中数组的特点数组的声明和初始化方法和简单变量有什么不同
java语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。
★ 一维数组
1. 一维数组的定义
type arrayName[ ];
类型(type)可以为Java中任意的数据类型,包括简单类型和复合类型。
例如:
int intArray[ ];
Date dateArray[];
2.一维数组的初始化
◇ 静态初始化
int intArray[]={1,2,3,4};
String stringArray[]={"abc", "How", "you"};
◇ 动态初始化
1)简单类型的数组
int intArray[];
intArray = new int[5];
2)复合类型的数组
String stringArray[ ];
String stringArray = new String[3];/*为数组中每个元素开辟引用
空间(32位) */
stringArray[0]= new String("How");//为第一个数组元素开辟空间
stringArray[1]= new String("are");//为第二个数组元素开辟空间
stringArray[2]= new String("you");// 为第三个数组元素开辟空间
3.一维数组元素的引用
数组元素的引用方式为:
arrayName[index]
index为数组下标,它可以为整型常数或表达式,下标从0开始。每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。
★多维数组
Java语言中,多维数组被看作数组的数组。
1.二维数组的定义
type arrayName[ ][ ];
type [ ][ ]arrayName;
2.二维数组的初始化
◇ 静态初始化
int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};
Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。
◇ 动态初始化
1) 直接为每一维分配空间,格式如下:
arrayName = new type[arrayLength1][arrayLength2];
int a[ ][ ] = new int[2][3];
2) 从最高维开始,分别为每一维分配空间:
arrayName = new type[arrayLength1][ ];
arrayName[0] = new type[arrayLength20];
arrayName[1] = new type[arrayLength21];
…
arrayName[arrayLength1-1] = new type[arrayLength2n];
3) 例:
二维简单数据类型数组的动态初始化如下,
int a[ ][ ] = new int[2][ ];
a[0] = new int[3];
a[1] = new int[5];
对二维复合数据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。
而且,必须为每个数组元素单独分配空间。
例如:
String s[ ][ ] = new String[2][ ];
s[0]= new String[2];//为最高维分配引用空间
s[1]= new String[2]; //为最高维分配引用空间
s[0][0]= new String("Good");// 为每个数组元素单独分配空间
s[0][1]= new String("Luck");// 为每个数组元素单独分配空间
s[1][0]= new String("to");// 为每个数组元素单独分配空间
s[1][1]= new String("You");// 为每个数组元素单独分配空间
3.二维数组元素的引用
对二维数组中的每个元素,引用方式为:arrayName[index1][index2]
例如: num[1][0];
4.二维数组举例:
【例2.2】两个矩阵相乘
public class MatrixMultiply{
public static void main(String args[]){
int i,j,k;
int a[][]=new int [2][3]; //动态初始化一个二维数组
int b[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};//静态初始化
一个二维数组
int c[][]=new int[2][4]; //动态初始化一个二维数组
for (i=0;i<2;i++)
for (j=0; j<3 ;j++)
a[i][j]=(i+1)*(j+2);
for (i=0;i<2;i++){
for (j=0;j<4;j++){
c[i][j]=0;
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
}
}
System.out.println("*******Matrix C********");//打印Matrix C标记
for(i=0;i<2;i++){
for (j=0;j<4;j++)
System.out.println(c[i][j]+" ");
System.out.println();
}
}
}
② java 如何定义数组和初始化
1.数组的定义:
数组可以分为一维数组,二维数组,多维数组。一维数组的定义有以下两种方式:
type[]arr_name;
typearr_name[];
二维数组的定义方式如下:
type[][]arr_name;
typearr_name[][];
多维数组可根据维数指定相应个数的[ ]
int[]arr1;
String[]arr2;
floatarr3[];
String[][]arr4;
2.数组的初始化:
数组的初始化有以下两种方式
静态初始化
静态初始化是指在定义的同时指定数组元素内容,示例代码如下:
int[]arr1={1,2,3,4,5};
String[]arr2={"tom","rose","sunny"};
String[][]arr3={{"tom","American"},{"jack","England"},{"张三","china"}};
动态初始化
动态初始化是指在定义时首先通过new 关键字开辟指定大小的存储空间,然后在为数组指定内容
int[]arr1=newint[2];
arr1[0]=10;
arr2[1]=20;
arr3[2]=30;
③ java二维数组所有行开始都定义为0怎么定义
在处理Java二维数组时,若希望所有行的元素初始值均为0,可以使用嵌套的for循环进行初始化。例如,对于一个2x2的二维数组,可以这样定义:
public class Test {
public static void main(String[] args) {
double[][] a = new double[2][2];
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
a[i][j] = 0;
}
}
}
}
这个代码片段首先声明了一个2x2的二维数组a。接着,通过两层for循环,对数组中的每个元素进行赋值操作,将其设置为0。这样的初始化方法适用于任何大小的二维数组。
此外,也可以利用Java的数组初始化特性,直接在声明数组时就进行初始化。例如:
double[][] a = {{0, 0}, {0, 0}};
这种方式在定义数组的同时,自动将每个元素初始化为0。
需要注意的是,在处理大型数组时,直接在声明时初始化可能更加高效,因为这样可以避免循环赋值的过程。
在实际编程中,合理地初始化数组可以提高代码的可读性和运行效率,尤其是在处理数值计算时尤为重要。
总之,无论是通过循环还是直接初始化,确保数组的初始值正确都是编程过程中的重要一环。
④ java数组的初始化
int[][]a;//二维数组引用a
a=newint[10][];//a指向一个10个元素的数组,其中每个元素都是一个一维数组引用
for(inti=0;i<10;i++){
a[i]=newint[10];//对该数组中的每个引用初始化,使它们指向一个拥有10个int型变量的数组
}
⑤ java中二维数组的初始化是什么
这样写是语法错误的,正确的写法是:
String [][]a={
{"1","2","3"},
{"4","5","6"}
};
在讲一点数组的知识:
26,一维数组的形式:(1), int a[]; a = new int[5]; 等同于int a[] = new int[5];
(2), int[] a; a = new int[5]; 等同于 int[] a = new int[5];
27,二维数组:int a[][] = {{1,2}, {3,4,5,6}, {7,8,9}};二维数组可看成以数组为元素的数组。
java中多维数组的声明和初始化应按从高维到低维的顺序进行,如:
方法(1);
int a[][] = new int[3][];
a[0] = new int[2];
a[1] = new int[4];
a[2] = new int[3];//正确
int t[][] = new int[][4];//非法
方法(2);
int a[][] = new int[3][5];//正确,分配一个三行五列的二维数组。