数组
数组
同类型、有顺序的数据集合
访问 :数组+[下标:从零开始]
声明
数据类型 [ ] 命名 ={};
数据类型 [ ] 命名 = new 数据类型 [ 数据个数];有默认值为0;
数据类型 [ ] 命名 = new 数据类型 [ ] {赋值:值+多个逗号隔开};
赋值 命名[0]=值;
获取数组长度:数组名点length
特点:长度固定(不可改变)、类型相同、数组为引用类型,也是对象,存在在堆中,下标不可越界([0,length-1))
//静态创建,长度确定
int [] ints1={1,2,3};
for (int i=0;i<ints1.length;i++) {
//取数据,数组名[下标],从0开始
int a=ints1[i];
System.out.print(a+"\t");
}
System.out.println();//换行作用
//动态创建,赋默认值
int [] ints2=new int[3];
for (int i : ints2) {
int b=i;
System.out.print(b+"\t");//看默认值
}
//赋值方式一
ints2[0]=5;
ints2[1]=6;
ints2[2]=7;
System.out.println();
for (int i : ints2) {
int c=i;
System.out.print(c+"\t");//看默认值
}
//赋值方式二
System.out.println();
int [] ints3=new int[]{8,9,10};
for (int i : ints3) {
int d=i;
System.out.print(d+"\t");//看默认值
}
}
堆:存放new的数据 栈:new存放数据的地址
寻找:栈地址——>堆数据
下标越界:arrayindexoutboundsexception
int [] ints1={1,2,3};
for (int i=0;i<=ints1.length;i++) {
//取数据,数组名[下标],从0开始,数组长度3,等于长度就越界了
int a=ints1[i];
System.out.print(a+"\t");
应用:存数据,当作参数
//存储数据
int[] ints1 = {1, 2, 3};
double d= add(ints1,1.234);
System.out.println(d);
}
//当参数
static double add(int[] b,double c){
int a=0;
for (int i : b) {
a=i;
}
return a+c;
}
多维数组
计算机只有平行储存空间,一维数组里再套一个数组为二维数组
定义:int [ ] [ ] 命名={{1,2},{3,4}};
取数据:int[0]有{1,2};int[1]有{3,4}
所以int【0】【1】=1;
//三种声明和创建都适用
int[][] ints1 = {{1, 2}, {3, 4}};
//取数据,外层有0:数组{1,2}和1:数组{3,4},再加内层数组下标即为数据
System.out.println(ints1[0][0]);//取出1
System.out.println(ints1[1][0]);//取出3
//第一层循环,循环出里面的数组
for (int[] ints : ints1) {
//第二层循环,循环出数据
for (int anInt : ints) {
int a = anInt;
System.out.print(a + "\t");
}
Arrays类
IDEA中:sort(int [])
JDK中:sort按照数字顺序排列指定的数组。
`
int[] ints1 ={4,2,3,1};
for (int i : ints1) {
System.out.print(i+"\t");
}
System.out.println();
Arrays.sort(ints1);//数组从小到大排序
for (int i : ints1) {
System.out.print(i+"\t");
}