首页 > 技术文章 > java-数组

ljq697 2020-04-05 16:37 原文

数组

概念:是一种容器,可以同时存放多个数据。

数组的特点:

  1. 数组是一种引用数据类型;
  2. 数组当中的多个数据类型必须统一;
  3. 数组的长度在程序运行期间不可改变。

数组的初始化:在内存当中创建一个数组,并且向其中赋予一些默认值。

两种常见的初始化方式:

  1. 动态初始化(指定元素个数);
  2. 静态初始化(指定具体内容);

        动态初始化数组的格式:

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

解析:

左侧数据类型:数据当中保存的数据,全都是统一的什么类型

左侧中括号:代表我是一个数组

左侧数据名称:给数组取个名字

右侧的 new :代表创建数组的动作

右侧中括号 数据长度:可以存多少个数据,是一个 int 数字。

public static void main(String[] args) {
        //创建一个数组存放300个int数据
        int [] arrayA = new int[300];
        //创建一个数组存放10个double类型的数据
        double [] arrayB = double [10];
        //存放5个字符串
        String [] ayyayC = String [5];
    }

        静态初始化数组的格式:

          数据类型  [  ]  数组名称  =  new  数据类型 [  ]  { 元素1 ,元素2 ,元素3,.......  } ;

          省略格式:

          数据类型 [  ]  数组名称  =  {元素1,元素2,元素3,........} ;

 

 public static void main(String[] args) {
        //创建一个数组,里面为:5 , 15 , 25
        int [] arrayA = new int[ ] {5 , 15, 25}; 
        //创建一个数组,里面为:"Hello" , "World", "Java"
        String [ ] arrayB = new String[ ]{"Hello", "World", "Java" };
                
    }

注意事项:

  1. 静态初始化没有直接指定长度,但仍然会自动推算得到长度
  2. 静态初始化标准格式可以拆分成两个步骤
  3. 动态初始化也可以拆分成为两个步骤
  4. 静态初始化一旦使用省略格式,就不能拆分成两个步骤

使用建议:如果不确定数组中的具体内容用动态,确定具体内容用静态初始化。

 public static void main(String[] args) {
        //省略格式的静态初始化
        int [ ] ayyayA = {10, 20, 30 };
        
        //静态初始化的标准格式拆分成两个步骤
        int [ ] arrayB;
        arrayB = new int[ ]{11,12,32};
        //动态初始化拆分为两个步骤
        int [ ] arrayC;
        arrayC = new int[5];
        //静态初始化的省略格式不能拆分成两个步骤
//        int [] arrayD;
//        arrayD = { 10,20,30}
    }

访问数组元素进行获取

          访问数组元素的格式:  数据名称  [ 索引值 ];

       索引值:就是一个 int 数字,代表数组当中元素的编号。

      【注意】索引值从 0 开始,一直到“数组的长度 -1”为止

public static void main(String[] args) {
        //静态初始化的省略格式
        int [ ] array = {10, 20, 30 };
        System.out.println(array);//I@1b6d3586

        //直接打印数组中的元素
        System.out.println(array[0]);//10
        System.out.println(array[1]);//20
        System.out.println(array[2]);//30
        System.out.println("==============");

        //也可以将数组当中的某一单个元素,赋值交给变量
        int num = array[1];
        System.out.println(num);//20
    }

访问数组元素进行赋值

/*
    使用动态初始化数组的时候,其中的元素将自动拥有一个默认值。规则如下:
    如果是整数类型:默认为0;
    如果是浮点类型:默认为0.0;
    如果是字符类型:默认为\u0000;
    如果是布尔类型:默认为false;
    如果是引用类型:默认为null。

*/
    public static void main(String[] args) {
        //动态初始化一个数组
        int [ ] array = new int[3];

        System.out.println(array[0]);//0
        System.out.println(array[1]);//0
        System.out.println(array[2]);//0
        System.out.println("============");
        //将数据123赋值交给数组array当中的1号元素
        array[1] = 123;
        System.out.println(array[0]);//0
        System.out.println(array[1]);//123
        System.out.println(array[2]);//0
    }

获取数组长度

/*
    获取数组长度,格式:
                   数组名称.length
     这将得到一个int数字,代表数字的长度。
     注意:数组一旦创建,程序运行期间,长度不可改变。
*/
    public static void main(String[] args) {
        int [ ] arrayA = {10,20,30,4,3,2,3,4,5,6,7,90};
        int len = arrayA.length;
        System.out.println("数组长度为:" + len);
        System.out.println("=============");
        int [ ] arrayB = new int[3];
        System.out.println(arrayB.length);//3
        int [] arrayC = new int[5];
        System.out.println(arrayC.length);//5 此时为一个新的数组
                
    }

数组的遍历输出

 /*
    遍历数组:就是对数组当中的每一个元素进行逐一、挨个处理,默认方式为打印输出
 */
    public static void main(String[] args) {
        int [ ] array ={1,2,3,12,23};

        //原始方式
        System.out.println(array[0]);//1
        System.out.println(array[1]);//2
        System.out.println(array[2]);//3
        System.out.println(array[3]);//12
        System.out.println(array[4]);//23
        System.out.println("==============");

        //使用循环,次数就是数组长度
        for (int i = 0; i < 5; i++) {
            System.out.println(array[i]);
        }
        System.out.println("==============");
        int len = array.length; // 快捷 array.fori
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
       
    }

求出数组中的最值

//比武招亲(求最大)
    public static void main(String[] args) {
        int[] array = {12, 34, 56, 76, 86};
        
        int max = array[0]; //比武开始,一个在擂台上
        for (int i = 1; i < array.length; i++) {
            //如果当前元素,比max更大,则换人
            if (array[i] > max){
                max = array[i];
            }
        }
        //谁厉害在擂台上
        System.out.println("最大值:" + max);//求最小值时更改成小于
    }

 

            

 

推荐阅读