(JAVA)数组
所谓数组,就是若干相同类型的元素集合。
🐧一维数组
- 示例:
public class test {
public static void main(String[] args) {
int[] a = new int[3];
a[0] = 1;
a[2] = 5;
System.out.println(""+a[0]+a[1]+a[2]);
}
}
-
内存分析(简述):
java语言中内存分为两种:栈内存 和 堆内存栈内存:存放在方法中定义的一些基本数据类型的变量和引用类型的变量
堆内存:存放由
new
运算符创建的数组和对象。 -
对于某些数组元素,当分配内存空间(new)后,系统会自动初始化它们
类型 默认初始化 byte 0 short 0 int 0 long 0L char ‘\u0000’(表示空) float 0.0F double 0.0 boolean false String null 注意:
int[] a;//声明名称为x的int型数组 a = new int[3];//a数组中包含3个元素,并为这3个元素分配内存空间 //a[0]=0, a[1]=0, a[2]=0
-
一维数组的初始化
String[] str = {"总有人间一两风","填我十万八千梦"}; System.out.println(str.length); System.out.println(str[0]);
-
数组类常用方法:
方法 功能 X.length() 返回任意类型数组X的数组大小 X.equals(Y) 判断数组X是否和数组Y为同一个数组 Y = X.clone() 将X数组克隆到Y数组 示例:
让c = a
实际上是让c
也指向a
中在堆存放的数组,
这里equals
也等于=
可以发现b
与a
指向的空间不同,与上例不同,这里修改b[0]
不会改a[0]
🦉二维数组
- 示例:
public class test {
public static void main(String[] args) {
int[][] x = {{1,0,5},
{1,0,5}}
for (int i = 0; i < x.length; i++) {
for (int j = 0; j < x[i].length; j++) {
System.out.print(x[i][j]+" ");
}
System.out.println();
}
}
}
-
内存分析:
这里x[0]
与x[1]
相当于一维数组。 -
c语言中的二维数组必须都是矩形。
int a[2][3]; int b[2][3] = {{1},{2}}; //b[0][0] = 1, b[1][1] = 0;
java中却不一定
int[][] c = new int[2][3];//矩形 int[][] d = new int[2][];//可以根据需要来new每一行的大小 c[0] = new int[100]; c[1] = new int[1];
示例:乘法口诀表~🪄
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
System.out.println("请输入n");
int n = sca.nextInt();
int[][] mt = new int[n][];
//得到i*j的结果
for (int i = 0; i < mt.length; i++) {
mt[i] = new int[i+1];//定义每一行的个数
for (int j = 0; j < mt[i].length ; j++) {
mt[i][j] = (i+1)*(j+1);
}
}
//打印
for (int i = 0; i < mt.length; i++) {
//输出每一行
System.out.print(i+1+"|");//输出首行提示
for (int j = 0; j < mt[i].length; j++) {
System.out.print("\t"+mt[i][j]);
}
//输出低行提示
System.out.println();
if(i == mt.length-1)
{
for (int j = 0; j < mt.length; j++) {
System.out.print("----");
}
System.out.print("\n ");
for (int j = 0; j < mt.length; j++) {
System.out.print("\t"+(j+1));
}
}
}
}
}
待续~