重点笔记----数组

文章介绍了Java中数组的基本概念,包括数组的定义、初始化、遍历方式,以及数组的扩容操作。同时,文章详细讲解了如何对数组进行冒泡排序和选择排序,还提到了Java内置的`Arrays.sort()`方法。另外,文章也涵盖了可变长参数和二维数组的使用。
摘要由CSDN通过智能技术生成

数组的定义

  • 一组连续的存储空间(长度固定),存储多个相同数据类型的值;
  • 数组长度为5的一个数组,它的下标从0~4;
  • 数组名[0]; 代表数组中第一个位置的值;
  • 有效下标范围:0~数组长度-1;
  • Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExeption:长度;(下标越界)
数据类型[] 数组名 = new 数据类型[数组长度];
数据类型[] 数组名 = new 数据类型[]{值1,值2,值3...};
数据类型[] 数组名 = {值1,值2,值3...};

数组的遍历

  • 使用循环变量“ i ”充当下标逐一访问数组中的每一个元素
  • 数组名.length 可获取动态数组长度
public static void main(String[] args){
for(i=0;i<数组名.length;i++){
    System.out.println(a[i]);
}
}

数组的扩容

        创建大于原数组长度的新数组=>将原数组的元素依次复制到新数组中

        完成元素复制后,需要将新数组中的地址赋值给原数组进行替换  newArray=oldArray;

  • 循环将原数组的元素逐一复制给新数组
for (int i = 0; i < oldArray.length; i++) {
			newArray[i]=oldArray[i];
		}
  • System.arraycopy(原数组,原数组起始位置,新数组,新数组起始位置,长度)
System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);
		for (int i = 0; i < newArray.length; i++) {
			System.out.print(newArray[i]+" ");
		}
  • Arays.copyOf(原数组,新长度)
oldArray=Arrays.copyOf(oldArray, oldArray.length+2);

可变长参数

        可接收多个同类型实参,个数不限,使用方式和数组相同,必须定义在最后且只能有一个

public static void print2(int... oldArray) {
		for (int i = 0; i < oldArray.length; i++) {
			System.out.print(oldArray[i]+" ");
		}
	}

数组的排序

  • 冒泡排序:相邻的两个数值比较大小、互换位置
public static void maoPaoSort(int[] arr) {

		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - i - 1; j++) {
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
		print(arr);
		System.out.println();
	}
  • 选择排序:先定义一个固定值,将固定值与其他值依次进行比较、互换位置
for (int i = 0; i < arr.length - 1; i++) {
			int min_index = i;
			for (int j = i + 1; j < arr.length; j++) {
				if (arr[j] < arr[min_index]) {
					min_index = j;
				}
			}
			if (min_index != i) {
				int temp = arr[i];
				arr[i] = arr[min_index];
				arr[min_index] = temp;
			}
		}
		print(arr);
  • JDK排序(升序)

java.util.Arrays.sort(数组名);

二维数组

数组类型[][] 数组名 = new 数据类型[高维长度][低维长度];
数组类型[][] 数组名 = new 数据类型[高维长度][];  //不规则数组自行new低维数组
数组类型[][] 数组名 = {{v1,v2,v3},{v4,v5},{v6}};   //显示初始化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值