数组

数组
主要是熟练使用Arrays类
数组是相同数据类型的有序集合,用{}创建表示。
数组的声明和创建
声明:
变量类型[] 变量名 变量类型 变量名[]
推荐左边这一个
创建:
使用new来声明创建一个
int[] arr; //定义
arr=new int[10]; //创建
int[] arr0=new int[10];//合在一起创建
内存分析:
//静态初始化
int[]a={1,2,3};
Man[] mans={new Man(1,1),new Man(2,2)};
//动态初始化
int[] b=new int[10];
b[0]=1;
b[1]=2; //如果不赋值的话,默认的就是0

数组的边界及特点

特点:
数组的长度是确定的,一旦被创建,长度大小就不可以改变。
元素必须是相同元素,不允许出现混合类型。
元素可以是任何数据结构,包括基本类型和引用类型。
数组的变量是引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其它对象类型,数组本身是在堆中的。
//实现数组元素的反转
public static int[] reverse(int[] arrays){
int tem=0;
for (int i = 0; i < arrays.length/2; i++) {
tem=arrays[i];
arrays[i]=arrays[arrays.length-i-1];
arrays[arrays.length-i-1]=tem;
}
return arrays;
}
传入数组返回数组形式如上

多维数组

int[][] arrays=new int[2][3];
int[][] array2={{1,2,3},{4,5,6}};
for (int i = 0; i <array2.length ; i++) {
System.out.println(array2[i]);
//这样输出的话是地址
//下面是另外一种初始化的时候的定义方式
int[][]array2=new int[num+1][3];
array2[0]= new int[]{11, 11, 2};

Arrays类详解

import java.util.Arrays;
int[] a={1,2,3,4,6,8,1,2,0,44,11};
int[] b=a;
Arrays.sort(b);
System.out.println(Arrays.toString(a));
Arrays.fill(a,0);
System.out.println(Arrays.toString(b));
差不多Arrays类的用法,查看帮助文档是最方便的,在IDEA左下角有一个strycture
可以在这里查看。
//冒泡排序
public static int[] sort(int[] arrays) {
int temp=0;
for (int i = 0; i < arrays.length-1; i++) {
boolean flag=false;
for (int j = 0; j <arrays.length-1-i; j++) {
if (arrays[j]>arrays[j+1]){
temp=arrays[j+1];
arrays[j+1]=arrays[j];
arrays[j]=temp;
flag=true;
}
}
if (!flag){
break;
}
}
return arrays;
}
一定注意好区分上下界

稀疏数组

当数组中大部分元素为0的时候,就是稀疏数组,把具有不同值的元素的行列及值记录在一个小规模数组中,从而缩小程序的规模。
int num=2;
int[][]array2=new int[num+1][3];
array2[0]= new int[]{11, 11, 2};
array2[1]=new int[]{1,2,1};
array2[2]=new int[]{2,3,1};
posted @ 2021-02-08 23:34  AIKE77  阅读(43)  评论(0)    收藏  举报