Java基础——数组

本文详细介绍了Java中的数组,包括动态和静态数组的创建方法,数组的基本操作如赋值、取值和获取长度,遍历数组的两种方式以及其优缺点。还讨论了数组的默认初始化、数据类型的传递规则以及Array工具的使用,如toString、binarySearch、equals、sort和fill等方法。
摘要由CSDN通过智能技术生成

数组的创建

动态数组的创建

语法格式:
一、数据类型 [ ] 数组名 = new 数据类型[数组长度];(建议)
二、数据类型 数组名[ ] = new 数据类型[数组长度];
三、或者先声明,在赋值也可以

     	int[] arr3 = new int[5];
        int[] arr4 = new int[]{};
        int[] arr5 = {};

静态数组的创建

语法格式:
一、数据类型 [ ] 数组名 = new 数据类型[]{元素1, 元素2, 元素3,…};
二、数据类型[] 数组名 = {元素1, 元素2, 元素3,…};

		int[] arr = new int[]{1, 2, 3, 4};
        int[] arr1 = {1, 2, 3, 4};
        
        int[] arr2;
        arr2 = new int[]{1, 2, 3};
// 注意:当我们在定义数组的时候,如果声明和赋值拆开写,
// 那么就必须要写完全版本;

注意:

  •  a、严禁在等号左边的中括号里面写数字;
    
  •  b、严禁在等号右边的中括号里面写了数字还写大括号的;
    

数组的基本操作

赋值 —> arr [index] = XXX;

int [] arr =new int[5];
	arr [0]=11;  //给第一个元素赋值
	arr [1]=12; //给第二个元素赋值
	
	//修改第二个元素的值
	arr [1] =13; 

取值 —> arr [index]

nt [] arr={1,2,3,4};

	//获取第一个元素
	int num1 = arr [0];

获取长度 ---->数组名 .length

int [] arr = {1,2,3,4};
	System.out.println(arr.length); //输出4

注意:

  • 数组长度是  数组名.length
    
  • 字符串长度是  变量名.length()
    

遍历

方式一:推荐写法

        int[] arr = {1, 2, 3, 4};
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

方式二: fareach 循环

        int[] arr = {1, 2, 3, 4};
        for (int i : arr) {
            System.out.println(i);
        }

优点:语法简洁,比普通for循环的效率高。
缺点:相比较普通for循环,增强for循环无法获得数组下标,
且循环过程中,数组结构不能改变(元素的增加和删除)

数组的默认初始化

1、整数类型都为 0
2、浮点型为0.0
3、字符型为“\u0000”
4、布尔型为false (未赋值都为false)
5、引用数据类型为null

数据类型的传递

  • 基本数据类型的传递------->不会改变值
int a =10;
int b =a;
b=20;
System.out.println(a);//10
  • 引用数据类型的传递------->赋值的是地址值
int [] arr={1,2,3};
int [] arr1=arr;
arr2[0]=4;
System.out.println(arr); // [I@4554617c

Array工具的使用

  • 1、toString
    返回指定数组内容的字符串表示形式。
        int[] arr1 = new int[]{1, 2, 3, 4};
        String a = Arrays.toString(arr1);
        System.out.println(a);//[1,2,3,4]
  • 2、二分法查找( binarySearch)
		int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
		// 查找6在数组中的索引位置
		int index = Arrays.binarySearch(arr, 6);
		System.out.println(index);  // 输出:6
		// 查找18在数组中的索引位置
		index = Arrays.binarySearch(arr, 18);
		System.out.println(index);  // 输出:-11,证明没找到
  • 3、equals判断

判断两个数组中的内容是否相同。

		int[] arr1 = {3, 5, 1, 7, 6, 2, 4};
		int[] arr2 = {3, 5, 1, 7, 6, 2};
        boolean b= Arrays.equals(arr1,arr2);
        System.out.println(b); //false
  • 4、sort排序

// 对数组中的内容进行升序排序

		int[] arr = {3, 5, 1, 7, 6, 2, 4};
		Arrays.sort(arr);
		System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 3, 4, 5, 6, 7]
  • 5、fill 填充数组
		int[] arr = new int[5];
		Arrays.fill(arr, 89);
		System.out.println(Arrays.toString(arr)); // 输出:[89, 89, 89, 89, 89]
  • 6、数组拷贝 (copyOfRange)
		int[] arr = {1, 2, 3, 4, 5, 6, 7, 8};
		int[] newArr = Arrays.copyOf(arr, 3);  //从数组的第一个元素开始拷贝[1,2,3]
		int[] newArr = Arrays.copyOfRange(arr, 2, 5); //从指定范围拷贝数组
		System.out.println(Arrays.toString(newArr));   // 输出:[3, 4, 5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值