二维数组的使用

1、二维数组

(1)Java中操作多位数组的语法与一维数组类似。在实际应用中,三维以上的数组很少使用,主要使用二维数组。

(2)二维数组是一个元素为一维数组的一维数组。

(3)从语法上Java支持多维数组,但从内存分配原理的角度看,Java中只有一维数组,没有多维数组。或者说,从表面上是多维数组,实质上都是一维数组。

(4)定义二维数组的语法格式如下:

数据类型[][] 数组名;

或者:

数据类型 数组名[][];

--->数据类型为数组元素的类型。

--->“[][]”用于表明定义了一个二维数组,通过多个下标进行数据访问。

--->“数组名[下标]”表示二维数组里的一个元素,这个元素还是一个一维数组。

--->“数组名[下标][下标]”表示二维数组里的一个元素(一维数组)里的一个元素。

2、二维数组的使用

(1)初始化二维数组

二维数组初始化的语法格式如下:

            数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2,···,元素n},{元素1,元素2,···,元素n},···,{元素1,元素2,···,元素n}};
        或者:
            数据类型[][] 数组名 = {{元素1,元素2,···,元素n},{元素1,元素2,···,元素n},···,{元素1,元素2,···,元素n}};    

(2)二维数组的遍历

            for(int i = 0;i<数组名.length;i++){
                for(int j = 0;j<数组名[i].length;j++){
                    System.out.println(数组名[i][j]);
                }
            }

冒泡排序

package com.bdqn.study08;

public class Study02 {

    public static void main(String[] args) {
        // 冒泡排序:每次比较相邻两数,小的交换到前面,每轮结束后大的交换到最后

        int[] nums = { 37, 75, 29, 74, 52, 66 };
        System.out.println("数组排序前:");
        for (int i = 0; i < nums.length; i++) {
            System.out.print(nums[i] + " ");
        }
        System.out.println();
        // 外层循环控制轮数
        for (int i = 0; i < nums.length - 1; i++) {
            // 内层循环控制每一轮比较的次数
            for (int j = 0; j < nums.length - 1 - i; j++) {
                if (nums[j] < nums[j + 1]) {
                    // 比较相邻两个元素大小,将元素值大的交换到后面
                    int temp = nums[j];
                    nums[j] = nums[j + 1];
                    nums[j + 1] = temp;
                }
            }
        }
        // 遍历数组元素
        System.out.println("数组排序后:");
        for (int i = 0; i < nums.length; i++) {
            System.out.print(nums[i] + " ");
        }
        System.out.println();

    }

}

Arrays类的使用

package com.bdqn.demo05;

import java.util.Arrays;

public class ArraysDemo02 {

    public static void main(String[] args) {
        
        int[] nums1 = {11,22,33,44,55};
        int[] nums2 = {11,22,33,55,44};
        
        //boolean equals(数组名1,数组名2):比较两个数组中的元素是否完全一致(比较对应下面上的元素是否相同),如果所有元素值都相同,返回true,否则返回false
        boolean result1 =Arrays.equals(nums1, nums2);
        System.out.println("两个数组完全相同:"+result1);
        
        //String toString(数组名):将数组转换成字符串输出
        int[] nums3 = {12,25,96,43,11,56};
        String result2 =Arrays.toString(nums3);
        System.out.println(result2);//"[12, 25, 96, 43, 11, 56]"
        
        //void fill(数组名,数据):将数组中所有的元素值替换为你指定数据
        String[] strs ={"hello","java,","html","js"};
        Arrays.fill(strs, "qwert");
        
        System.out.println(Arrays.toString(strs));//"[qwert, qwert, qwert, qwert]"
        
        //数据类型[] copyOf(数组名,长度):赋值指定数组中指定长度的元素,生成一个新的对应类型的数组,当复制的长度小于等于被复制数组长度的时候,取数组里的元素,如果复制的长度大于被复制的数组长度,不够的元素用默认值补充
        char[] chs = {'q','w','e','r','t','y','u'};
        char[] copyChs=Arrays.copyOf(chs, 9);
        System.out.println(Arrays.toString(copyChs));
        
        //数据类型[] copyOfRange(数组名,起始下标,结束下标):复制指定数组中起始下标到结束下标之间的元素,注意,包括起始下标的元素,不包括结束下标的元素
        char[] copyChs2=Arrays.copyOfRange(chs, 2, 4);
        System.out.println(Arrays.toString(copyChs2));
        
        //int binarySearch(int[] a,int key)使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过 sort(int[]) 方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。 
        //如果你要查找的元素值不在数组中,会返回一个负值
        int[] nums4 = {11,56,76,9,32,42,9,55};
        Arrays.sort(nums4);
        System.out.println(Arrays.toString(nums4));
        int index =Arrays.binarySearch(nums4, 11);
        System.out.println("你要找的元素的下标:"+index);

    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值