12-Java数组05~09

数组使用

  • 普通的For循环

  • For-Each循环

  • 数组作方法入参

  • 数组作返回值

实例:

package com.microwang.Array;

public class Demo04 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};

//        //JDK1.5 省去下标
//        for (int array : arrays) {
//            System.out.println(array);
//        }
        printArray(arrays);//打印数组元素
        reverse(arrays);//反转数组
    }

    //打印数组元素
    public static void printArray(int[] arrays) {
        for (int i = 0; i < arrays.length ; i++) {
            System.out.println(arrays[i]+" ");
        }
    }

    //反转数组
    public static int[] reverse(int[] arrays) {
        int[] result = new int[arrays.length];

        //反转的操作
        for (int i = 0, j = result.length - 1 ; i < arrays.length ; i++, j--) {
            result[j] = arrays[i];
        }

        return result;
    }
}

多维数组

多维数组可以看成是数组的数组,不如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组

二维数组

int a[][] = new int[2][5];
//可看作二行五列的数组

多维数组

int b[][][] = new int[2][3][4];

Arrays类

数组的工具类:java.util.Arrays

由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。

Arrays类中的方法都是static修饰的静态方法,在使用的时候可以通过直接使用类名进行调用,而“不用”使用对象来调用。

具有以下常用功能:

  • 给数组赋值:通过 fill 方法

  • 对数组排序:通过 sort 方法,按升序

  • 比较数组:通过 equals 方法比较数组中元素值是否相等

  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作

代码实现:

package com.microwang.Array;

import java.util.Arrays;//引用 java.util.Arrays 方法

public class Demo06 {
    public static void main(String[] args) {

        //创建一维数组
        int[] a = {1,2,3,7,5,23,67};

        //打印数组元素    Arrays.toString
        System.out.println(Arrays.toString(a));
        //打印数组元素    自建方法:printArray
        printArray(a);
        System.out.println();

        //对数组进行排序   Arrays.sort   升序
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));

        //对数组进行填充   Arrays.fill
        //部分填充  数组内 下标1~3元素 填充为0
        Arrays.fill(a,1,4,0);
        System.out.println(Arrays.toString(a));
        //全部填充  数组内所有元素填充为0
        Arrays.fill(a,0);
        System.out.println(Arrays.toString(a));
    }

    //打印数组元素自建方法
    public static void printArray(int[] a) {
        for (int i = 0; i < a.length; i++) {
            if (i == 0) {
                System.out.print("[");
            }
            if (i == a.length - 1) {
                System.out.print(a[i] + "]");
            }else {
                System.out.print(a[i] + ", ");
            }
        }
    }
}

冒泡排序

代码实现:

//冒泡排序
    //1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
    //2.每一次比较,都会产生出一个最大,或者最小的数组
    //3.下一轮则可以少一次排序
    //4.依次循环直到结束
    public static int[] sort(int[] array) {
        //定义临时变量
        int temp = 0;
        //外层排序:判断走多少次
        for (int i = 0; i < array.length; i++) {

            //判断优化
            boolean flag = false;

            //内层循环:判断两个数,如果第一个数,比第二个数大,则交换位置
            for (int j = 0; j < array.length-1-i; j++) {
                if (array[j+1] > array[j]) {
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                    flag = true;
                }
            }
            if (flag == false) {
                break;
            }
        }
        return array;
    }

稀疏数组

实例:编写五子棋游戏,有 存档 和 读档 功能

当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组

稀疏数组的处理方式:

  • 记录数组一共有几行几列,有多少个不同值

  • 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模

如下:左位原始数组,右为稀疏数组

12-Java数组05~09

上一篇:NFT火了,喜欢画画的12岁男孩用 Python 写了一个「表情包」,赚了250万


下一篇:Excel如何进行多行多列条件求和