0
点赞
收藏
分享

微信扫一扫

Java知识点(四):数组的定义、访问、遍历

一脸伟人痣 2022-04-24 阅读 56
java

文章目录


Java语言基础

包含数组的定义,数组的初始化、数组的访问,数组的复制和扩展,数组的排序,冒泡排序原理。


一、数组的定义

什么是数组

相同数据类型的元素组成的集合,数组是一种数据类型(引用类型)。元素按线性顺序排序。所谓线性就是除第一个元素外,每个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素(一个跟一个)

创建数组

int[] arr = new int[4];
//int[]:数组的类型,表示数组中的每一个元素都是int类型
//arr:数组类型变量(引用)
//int[4]:数组的长度,即数组中的元素个数

二、数组的初始化

基本类型的数组(数组元素为基本类型)创建后,其元素的初始值:byte,short,char,int,long为0;float和double为0.0;boolean为false

1)数组声明的同时进行初始化

int[] arr = {1,4,7}; //1,4,7
int[] arr;
arr = {1,2,3}; //编译错误,此方式只能声明的同时初始化

2)声明后,再初始化

int[] arr = new int[3]; //0,0,0
int[] arr = new int[]{1,2,3}; //1,2,3
arr = new int[]{1,2,3}; //正确

三、数组的访问

1)通过数组名.length可以获取数组的长度

int[] arr = new int[3];
System.out.println(arr.length); //3

2)通过索引/下标来访问数组中的元素。需要注意:数组的下标从0开始,最大到length-1

int[] arr = new int[3];
arr[0] = 100; //给第1个元素赋值为100
arr[1] = 200; //给第2个元素赋值为200
arr[2] = 300;
arr[3] = 400; //数组下标越界异常
System.out.println(arr[arr.length-1]); //输出arr的长度/个数
System.out.println(arr[arr.length-1]); //输出arr的长度/个数

四、数组的遍历

int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
    arr[i] = 100;
}
for(int i=0;i<arr.length;i++){ //正序
    System.out.println(arr[i]);
}
for(int i=arr.length-1;i>=0;i--){ //倒序
    System.out.println(arr[i]);
}

找最大值

1)假设第1个元素为最大值

int max = arr[0];

2)遍历剩余元素,将剩余元素与max做对比,若剩余元素大于max,修改max为较大的数

for(int i=1;i<arr.length;i++){
    if(arr[i]>max){
        max = arr[i];
    }
}

找最小值

1)假设第1个元素为最小值

int min = arr[0];

2)遍历剩余元素,将剩余元素与max做对比,若剩余元素小于min,修改min为较小的数

for(int i=1;i<arr.length;i++){
    if(arr[i]<min){
        min = arr[i];
    }
}

五、数组的复制

Arrays.copyOf方法

JDK提供对数组进行复制的方法,即将一个数组(源数组)中各个元素值复制到另外一个数组(目标数组)中

System.arraycopy(src, srcPos, dest, destPos, length);
System.arraycopy(a,1,a1,0,4);
//src-----要复制的源数组
//srcPos-----从源数组复制的起始位置
//dest-----要复制到的目标数组
//destPos-----复制到目标数组中的起始位置
//length-----要复制的元素个数

扩展

Arrays.copyOf方法:简便实现数组扩展

数组的长度在创建后不可改变。所谓扩展是指创建一个更长的数组并将源数组的内容复制过去

int[] arr = {13,32,33,45,95,16};
arr = Arrays.copyOf(arr, arr.length+1);
System.out.println(Arrays.toString(arr)); //扩展为7个元素,最后一个元素初始值为0,结果为[13, 32, 33, 45, 95, 16, 0]
		

六、数组的排序:

Arrays

JDK中的java.util.Arrays类提供对数组操作的一系列使用方法

Arrays.toString方法

Arrays.toString方法:用于字符串表示数组的元素

int[] arr1 = {1,2,3,4,5,6};
int[] arr2 = {1,2,3,4,5,6};
System.out.println(Arrays.toString(arr1)); //结果为[1, 2, 3, 4, 5, 6]

Arrays.equals方法

Arrays.equals方法:用于比较两个数组的各个元素是否相等

int[] arr1 = {1,2,3,4,5,6};
int[] arr2 = {1,2,3,4,5,6};
System.out.println(Arrays.equals(arr1, arr2)); //结果为true

Arrays.sort方法

Arrays.sort方法:用于实现数组的排序

int[] arr = {13,32,33,45,95,16};
String[] str = {"Apple","Pear","Banana","Strawbeery","Cherry","Fruit"};
Arrays.sort(arr);
Arrays.sort(str);
System.out.println(Arrays.toString(arr)); //按照数组大小顺序排序,结果为[13, 16, 32, 33, 45, 95]
System.out.println(Arrays.toString(str)); //按照字母顺序排序,结果为[Apple, Banana, Cherry, Fruit, Pear, Strawbeery]

Arrays.binarySearch方法

Arrays.binarySearch方法:用于实现有序数组的二分法查找

int[] arr = {13,32,33,45,95,16,13};
Arrays.sort(arr); //[13, 13, 16, 32, 33, 45, 95]
int index = Arrays.binarySearch(arr, 33); //返回数组下标
System.out.println(index); //结果为4
index = Arrays.binarySearch(arr, 0);
System.out.println(index); //找不到时,返回一个负数,结果为-1
index = Arrays.binarySearch(arr, 13);
System.out.println(index); //有多个相等元素是随机返回其中一个值的下标

冒泡排序

冒泡的工作原理:

1)4个数冒三轮

2)每一轮都是从第1个元素开始冒,每一次都是和它的下一个元素比

3)冒出来的数就不带它玩了
经典案例:数组的冒泡排序


举报

相关推荐

0 条评论