数组基本操作

本文详细介绍了数组的基本概念,包括数组的声明、初始化、遍历及排序方法,并演示了如何使用Java的Arrays类进行数组操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数组:    能用来储存一组相同类型的数据

2.数组的声明和创建:分为俩种形式动态初始化和静态初始化

    动态初始化:数组在定义的时候只设置长度,不设置内容

        格式:数据类型[] 数据名称 = new 数据类型[数据长度];

    int[] arr = new int[5];

    静态初始化:数组台定义的时候直接设置内容

        简化格式:数据类型[] 数据名称 = {值1,值2,值3 ......};

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

        完整格式:数据类型[] 数据名称 = new 数据类型[]{值1,值2,值3......}

    int[] arr = new int[]{1,2,3,4,5};

        在静态初始化过程中不用设置长度,像

            数据类型[] 数据名称 = new 数据类型[数据长度]{值1,值2,值3......}

    int[] arr = new int[5]{1,2,3,4,5};//非法声明

        写法是错误的。

    这里所谓的静态和动态是相对于程序运行而言的,静态在程序编译时就初始化好了的,动态初始化是在程序运行时才开始动态分配内存空间。

    3.数组的长度:数组名称.length

    int length = arr.length;

    4.数组的索引:0~length-1

    5.数组的遍历:一般使用循环for和for-each进行遍历

    int[] arr = new int[]{20,18,7,9,12,11};
    //使用for循环
    for(int i=0;i<arr.length;i++){
        System.out.println(arr[i]);
    }
    //使用for-each循环
    for(int i:arr){
	System.out.println(i);
    }

    6.冒泡排序法:使用冒泡排序法对数据进行排序

        规则:挨着的俩个元素进行比较如果前一个元素大于后一个元素(升序),就进行交换。

    int[] arr = new int[]{20,18,7,9,12,11};
    int length = arr.length;
    int temp = 0;//中间变量
    //外层循环,决定一共走几次
    for(int i=0;i<length-1;i++){
        //内层循环,对元素进行逐个比较
	for(int j=0;j<length-i-1;j++){
	    //如果前一个元素大于后一个元素,进行交换
	    if(arr[j]>arr[j+1]){
	        temp=arr[j];
		arr[j]=arr[j+1];
		arr[j+1]=temp;
	    }
        }
    }
    System.out.println(Arrays.toString(arr));

    7.多维数组:多维数组可以看成数组的数组,比如二维数组就可以看成一个特殊的一维数组,其中每一个元素都为一位数组。

    //二维数组
    int[][] arr = new int[][]{{7,12,20},{9,11,18}};
        //使用经典for循环进行遍历
	System.out.println(arr.length);
	System.out.println(arr[0].length);
	for(int i=0;i<arr.length;i++){
	    for(int j=0;j<arr[i].length;j++){
	        System.out.println("arr["+i+"]["+j+"]:"+arr[i][j]);
	    }
	}

    8.Arrays类

    java.util.Arrays提供了许多操作数组的静态方法;

        常用的有:sort,fill,toString,equals

        1.sort(int[] arr)

            对指定的int型数组按照数字升序进行排序,该排序算法是一个经过调优的快速排序法。

        2.fill(int[] arr,int fromIndex,int toIndex,int num)

            将指定的int值分配给指定的int型数组指定范围中的每个元素,填充的范围从索引fromIndex(包括)一直到索引toIndex(不包括)。(如果fromIndex==toIndex,则填充范围为空)

       3.toString(int[] a)

            返回支付in个数组内容的字符表示形式。字符串表示格式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符“, ”(逗号加空格)分隔。这额元素通过String,valueOf(int)转换为字符串。如果a为null,返回“null”;

    4.equals(int[] arr1,int arr2)

        如果俩个指定的int类型数组彼此相等,则返回true。如果俩个数组包含相同数量的元素,并且俩个数组中的所有相对应的元素是相等的,则认为这俩个数组是相等的。

    //Arrays类
    int i = 10;
    int[] arr = new int[]{20,18,7,9,12,11};
    Arrays.fill(arr,2,4,i);
    System.out.println(Arrays.toString(arr));
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));
    结果为:    [20, 18, 10, 10, 12, 11]
               [10, 10, 11, 12, 18, 20]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值