java数组

数组:一组连续的存储空间,能存储多个相同类型的值。

声明数组的方式:
    方式一:先声明,后初始长度
        数据类型[] 数组名;
        数组名 = new 数据类型[数组长度];
    方式二:
        数据类型[] 数组名 = new 数据类型[数组长度];
    方式三:在创建的同时,初始化元素值
        数据类型[] 数组名 = new 数据类型[]{元素值1.....};
    方式四:
        数据类型[] 数组名 = {元素值1....};    
        int[] a = new int[5];
        
特点:
    长度是固定的
    数据类型是相同的  

数组的下标:

数组的下标:也叫角标或者索引 index  是数组连续空间的一个别名。
            从0 下标开始表示第一个,一个数组的最大下标,是数组长度-1
            
数组的访问(赋值或取值) 格式: 数组名[下标]

特别注意:数组的下标从0开始

数组的异常:
    当访问数组时,如果角标超过数组的边界,
    会报角标越界异常 "ArrayIndexOutOfBoundsException";

数组的遍历:

//取值 for遍历数组
数组名.length 可以动态的获得数组长度
for(int i =0;i<arr1.length;i++){
    System.out.println(arr[i]);
}

数组扩容:

创建数组时,必须显示指定长度,并在创建之后不可更改长度
扩容思路:
    创建大于原数组长度的新数组
    将原数组中的元素依次复制到新数组中
方式:
    ①遍历将原数组中所有元素逐一赋值给新数组
    ②System.arraycopy(原数组,原数组起始,新数组,新数组起始,长度)
    ③java.util.Arrays.copyOf(原数组,新长度);  //返回带有原值的新数组

内存结构前瞻:

内存初探:分为  
    栈:
        基本数据类型
        作为参数,只是传递的值(该值的副本),不影响原数值
    堆:
        引用数据类型
        作为参数,传递的是地址值,此时操作的就是同一个堆中的对象,会影响原数值

排序:

冒泡排序:相邻的两元素比较大小(如果前元素大于后元素就交换位置),每次都会把比较后
         的最大值落在后面
         
public class TestMaoPao {
	public static void main(String[] args) {
		//冒泡排序
		int[] arr = {2,1,4,3,5,6};
		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 a = 0;
					a = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = a;
				}
			}
		}
		for(int i = 0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}
	}

}

数组类型的返回值:

public static void main(String[] args) {
		int[] a = {11,22,33,44,55};
		int[] b = expand(a);
		for(int i = 0;i<b.length;i++){
			System.out.print(b[i]+"\t");
		}
	}
	public static int[] expand(int[] oldArray){
		int[] newArray = new int[oldArray.length * 2]; 
		for(int i = 0;i<oldArray.length;i++){
			newArray[i] = oldArray[i];
		}
		return newArray;
	}

可变长参数:

概念:可接收多个同类型实参,个数不限,使用方式与数组相同
语法:数据类型... 形参名  //必须定义在形参列表的最后,且只能有一个
示例:
    public static void printArray(int... oneArray){
        //方法体
    }

二维数组:

概念:一维数组中的一维数组,数组中的元素还是数组
特点:
    对二维数组来说,表示出来就是行和列。
    二维数组中访问元素   数组名[行下标][列下标]
扩展:
    三维数组
    int[][][] arr = {{{1,2},{3,4}},{{5,6},{7,8}},{{9,10},{11,12}}};
    //三维数组  数组里面存数组2,数组2里面存数组3

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值