Java 数组

时间:2020-04-20
本文章向大家介绍Java 数组,主要包括Java 数组使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

数组

数组概述

  • 同类型的数据的有序集合
  • 同类型的若干个数据,按照一定的先后次序排列组合
  • 每一个元素称为数组元素,数组元素可以通过一个下标来访问

数组声明创建

  • 声明方式

    // 声明数组
    int[] nums;// 建议使用
    int nums1[];
    // 创建数组
    int[] nums = new int[5];// 可以存放5个int类型的数字
    // 获取数组长度
    nums.length;
    // 数组下标 从 0 开始
    
    

数组状态初始化

  • 静态初始化:创建+赋值

    int[] a = {1, 2, 3, 4, 5};
    
  • 动态初始化:包含默认初始化

    int[] a = new int[10];
    a[0] = 1;
    ...
    
  • 数组的默认初始化

    数组是引用类型,一经分配空间,其中每个元素也被按照实例变量同样的方式被 隐士初始化。

数组的基本特点

  • 数组的长度是确定的。数组一旦被创建其长度是不可变的

  • 数组的元素必须是同一类型的

  • 数组的元素可以为任意数据类型。既可以是基本类型,亦可以是引用类型

  • 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量

    数组本身就是对象,Java对象存储在 堆 中

数组的边界

  • 下标的合法区间:[0, length - 1]

数组使用

  • 普通for循环
  • for-each 循环
  • 数组作方法入参
  • 数组做返回
public class Array01 {
    public static void main(String[] args) {
        // 静态初始化数组
        int[] arrays = {1, 2, 3, 4, 5};

        // 打印所有元素
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]);
        }

        // 求和
        int sum = 0;
        for (int i = 0; i < arrays.length; i++) {
            sum += arrays[i];
        }
        System.out.println(sum);

        // 打印最大元素
        int larger = 0;
        for (int i = 0; i < arrays.length; i++) {
            if(arrays[i]>larger){
                larger = arrays[i];
            }
        }
        System.out.println(larger);
        
        // for-each 循环(since : JDK1.5)
        for (int array : arrays) {
            
        }

        // 反转数组
        int[] reverseArrays = new int[arrays.length];
        for (int i = arrays.length-1; i >=0; i--) {
            reverseArrays[i] = arrays[i];
            System.out.print(reverseArrays[i]);
        }
    }
}

多维数组

  • 多维数组可看成数组的数组,其每一个元素都是一个一维数组

  • 二维数组定义

    int arrays[][] = new int[*][*];
    

Arrays 类

  • java.utils.Arrays 的使用

冒泡排序

  • 总共八大排序。冒泡排序,两层循环,外层冒泡轮数,里层依次比较

  • 时间负责度: O(n2)

        public static void main(String[] args) {
            /*
            冒泡排序:核心就是比较数组中两个相邻的元素,如果第一个数比第二个数大,就交换位置,
            每一次比较都会出现一个最大或最小的数
            依次循环至结束
             */
            int[] arrays = {1, 9, 2, 10, 7, 6, 8};
            
            // 外层循环
            int temp = 0;
            for (int i = 0; i < arrays.length-1; i++) {
                // 内层循环,如果第一个数比第二个大 就交换位置
                for (int j = 0; j < arrays.length-1-i; j++) {
                    if(arrays[j+1] < arrays[j]){
                        temp = arrays[j];
                        arrays[j] = arrays[j+1];
                        arrays[j+1] = temp;
                    }
                }
            }
            System.out.println(Arrays.toString(arrays));
        }
    

稀疏数组

  • 当一个数组中大部分元素为0,或者为同一值得数值时,可以使用稀疏数组保存
  • 稀疏数组的保存方式
    1. 记录数组一共几行几列,有多少个不同值
    2. 把不同值的元素记录和行列记录在小规模数组中,以缩小程序的规模

原文地址:https://www.cnblogs.com/blackBlog/p/12736051.html