数组

一维数组

1.一组有着相同的数据类型的数的集合(容器)

	特性:1.是引用类型
		 2.长度有限
		 3.数组是一块连续的内存空间,读取速度快
		 4.数组元素的类型可以使任意类型。
		 5.数组的索引是从0开始
		 
	声明数组方式:
		int[] array;   //一个以array的数组
		int array[];   //两种等价,下一种不推荐使用
		
		//定义一个长度为6的数组。
		int[] array = new int[6];
		//在定义的时候直接赋值,有几个值,长度就为几,这种很少使用
		int[] array = new int[]{1,2,4,5,6,7};
		//在定义的时候直接赋值,有几个值,长度就为几。
		int[] array = {1,2,4,5,6,7};

增强for循环(可用于循环遍历出数组的元素)

	增强型for循环:
		for(数据类型 名字 : 循环的变量){ }
		
	eg:
	int[] arr = {1,2,3,5,6,7,9};
	for (int a : arr){
		System.out.println(a);
	}

如何建一个数字复制给另一个数组呢?且数组1修改不对数组2产生影响。

如何将一个数组赋值给另一个数组?
	int[] arr1 = {10,23,43,54,66} 
	int[] arr2 = arr1;
	这种方式只是将数组arr1的引用地址付给了arr2,arr1与arr2在堆空间其实指向一个数组,并没有将元素真的给他,若修改arr1,arr2也会被修改。
	只能通过循环将arr1的值赋给arr2,这样修改arr1,arr2也不会受到影响  Arrays.copyOf()方法可以达到效果
	int[] arr1 = {10,23,43,54,66} 
	int[] arr2 = new int[arr1.length];
	for(int i = 0;i < arr1.length;i++){
		arr2[i] = arr1[i];
	}
	
	

1.循环遍历赋值法

 /**
     * 数组元素的复制
     */
    public static void arrDemo3() {
        int a = 10;
        // 引用类型至少占2块内存
        int[] arr1 = {10, 20, 30, 40, 50};
        // 数组的复制 引用的复制 改动arr1 arr2 跟着改变
     /*   int[] arr2 = arr1;
        arr1[1] = 2;*/
        int[] arr2 = new int[arr1.length];
        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
        arr1[1] = 2;
        System.out.println(Arrays.toString(arr2));

//        String[] strs = {"a", "bb", "cc", "dd"};
    }

2.使用Arrays.copy()方法

		//将arr1复制给arr2 ,修改arr1,arr2不会改变
        int[] arr1 = {10,43,54,65,76};

        int[] arr2 = Arrays.copyOf(arr1,arr1.length);
        System.out.println(Arrays.toString(arr1));
        System.out.println(Arrays.toString(arr2));
        //比较arr1 arr2  结果是true
        System.out.println(Arrays.equals(arr1,arr2));
        //修改arr1
        arr1[3] = 9;
        System.out.println("=====================");
        System.out.println("数组arr1"+Arrays.toString(arr1));
        System.out.println("数组arr2"+Arrays.toString(arr2));
Arrays.toString(数组名)   //打印数组
Arrays.equals(arr1,arr2);  比较的是两个数组里面的值是否相等
Arrays.sort(arr);  按自然顺序对数组进行排序(从小到大,int String都可以使用)
Arrays.copyOf()  (源数组,新数组长度); 复制数组元素

Arrays.copyOf() 不仅可以复制目标数组,还可以扩充目标数组![在这里插入图片描述](https://img-
在这里插入图片描述

数组的异常

报错是因为数组的索引范围超出数组的长度导致

Exception in thread "main"  java.lang.ArrayIndexOutOfBoundsException: 

两个数组比较

Array.equals(arr1,arr2);
	比较的是两个数组的元素是否相同
(arr1 == arr2)
	比较的是两个数组的内存空间地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值