java数组

数组基本要素

  • 标识符:数组的名称,用于区分不同的数组

  • 数组元素:向数组中存放的数据

  • 元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问

  • 元素类型:数组元素的数据类型

  • 格式

标识符[] 数组名称 = new 标识符[长度];
标识符 数组名称[] = new 标识符[长度];

数组定义格式详解:

  • 数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

  • [] : 表示数组。

  • 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。

  • new:关键字,创建数组使用的关键字。-数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

  • [长度]:数组的长度,表示数组容器中可以存储多少个元素。

  • 注意:数组有定长特性,长度一旦指定,不可更改。

.创建数组

  • 静态初始化

    //第一种方式
    int[] arr = new int[]{1,2,3,4,5,6};
    //第二种方式
    int[] arr = {1,2,3,4,5,6};
  • 动态初始化

    int[] arr = new int[6];

数组的访问

  • 索引: 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引 (index),可以通过数组的索引访问到数组中的元素。

  • 数组的长度属性: 每个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的长度,语句为:数组名.length ,属性length的执行结果是数组的长度,int类型结果。由次可以推断出,数组的最大索引值为数组名.length-1

  • 索引访问数组中的元素:

    • 数组名[索引] = 数值,为数组中的元素赋值

              int[] arr = new int[6];
              arr[0] = 7;

    • 变量 = 数组名[索引],获取出数组中的元素

              int[] arr = {1,2,3,4,5};
              int num = arr[0];
              System.out.println(num);//1

二维数组

  • 格式

            //动态初始化二维数组
            标识符[] 数组名称 = new 标识符[行][列];
            int[][] arr = new int[10][10];
    
            //静态初始化二维数组
            int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
            System.out.println(arr[0][1]);//2

数组遍历

  • for循环遍历

    int[] arr = {1,2,3,4,5,6};
    
    for(int i=0;i<arr.length;i++){
        System.out.println(arr[i]);
    }//1,2,3,4,5,6
  • 增强for循环foreach

    int[] arr = new int[]{1,2,3,4,5,6,4,7};
    
    for(int value :arr){
        System.out.println(value);
    }//1,2,3,4,5,6,7

 

Arrays工具类

1.用法

  • import java.util.Arrays;
    Arrays.方法;
  • Arrays.fill(数组,值); //填充数组

  • Arrays.sort(数组); //数组排序

  • Arrays.toString(); //将数组中的内容全部打印出来

  • Arrays.equals(); //比较数组元素是否相等

  • Arrays.binarySearch(数组,值); //二分查找法找指定元素的索引值(下标)必须是排好序的

  • Arrays.copeOf() 和Arrays.copeOfRange(数组,长度); //截取数组

  • Arrays.copyOf(数组,长度)//指定数组长度进行拷贝

 

冒泡排序

        int[] arr = new int[]{15, 456, 11, 51, 34151, 31, 5, 82, 1, 5};

        for (int i = 0; i < arr.length - 1; i++) {

            for (int j = 0; j < arr.length - 1 - i; j++) {

                if (arr[j] > arr[j + 1]) {

                    int temp = arr[j];

                    arr[j] = arr[j + 1];

                    arr[j + 1] = temp;

                }

            }

        }

        System.out.println("从小到大排序后的结果是:");

        for (int i = 0; i < arr.length; i++){

            System.out.print(arr[i] + " ");

        }//1 5 5 11 15 31 51 82 456 34151 

选择排序

        int[] arr = {15,48,61,12,95,-65,-7,6};

        for (int i = 0; i < arr.length - 1; i++) {

            int min = i;

            for (int j = i; j < arr.length; j++) {

                if (arr[min] > arr[j]) {

                    min = j;

                }

            }

            int temp = arr[i];

            arr[i] = arr[min];

            arr[min] = temp;

        }

        System.out.println("从小到大排序为:");

        for (int i = 0; i < arr.length; i++) {

            System.out.print(arr[i] + "  ");

        }//-65  -7  6  12  15  48  61  95  

二分法查找

        int[] arr = {1, 5, 7, 9, 48, 99, 454, 888};

        int value = 99;

        int index = -1;

        int begin = 0;

        int end = arr.length - 1;

        while (begin <= end) {

            int middle = (begin + end) / 2;

            if (arr[middle] == value) {

                index = middle;

                break;

            } else if (arr[middle] < value) {

                begin = middle + 1;

            } else {

                end = middle - 1;

            }

        }

        System.out.println(index);//查询结果下标为:5

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值