zoukankan      html  css  js  c++  java
  • java基础中的一维数组和二维数组

    1.数组:具有相同数据类型的一组数据的集合。

    一维数组

    2.创建一维数组

       a.数组作为对象允许使用new关键字进行内存分配,使用数组之前,必须首先定义数组变量所属类型,即声明数组。

       声明数组:

        语法:数组元素类型   数组名字[];

                数组元素类型[]  数组名字;

      注释:数组元素类型:决定了数组的数据类型,包括基本数据类型和费基本数据类型。

              数组名字:为一个合法的标识符,自己去定义

              []:指明该变量是一个数组类型变量,单个"[]"表示要创建的是一维数组。

    例如:int arr[];

            String[] arr;

    注意:a.声明数组之后还不能进行访问他的任何元素,因为声明数组只是给出了数组的名字和元素的数据类型。

           b.真正使用数组还要为其分配内存空间,且分配内存空间时必须指明数组的长度。

    分配内存空间:

    语法:数组名字=new 数组元素类型[数组元素的个数];

    注释:数组名字:已经声明的数组变量的名称;

            new:对数组分配空间的关键字

            数组元素的个数:指定数组中变量的个数,即数组的长度。

    例如:arr=new int[5];

    注意:a.在内存空间中数组的下标是从0开始的。

            b.使用new关键字为数组分配内存时,数组中的各个元素都为0.  

               int型数组初始值为:0   boolean型初始值为:false   char型初始值为:“”

    声明数组和分配内存可以同时执行

    语法:数组类型  数组名[] =new  数组元素类型[数组元素的个数]

    例如:int  day[]=new int[30];     //创造了一个一维数组day,制定了数组长度是30.

    注意:无论哪种方法声明数组,前面的中括号都不可以填写内容。

    初始化数组

    数组初始化的方式是:把数据类型包括在大括号之内,中间用逗号分开数组元素的值,系统自己为数组分配一定的空间。

    例如:int arr []=new int[] {1,2,3,4,5,6};

            int arr []={1,2,3,4,5,6};

    注意:初始化数组时可以省略new运算符和数组的长度。

    二维数组

    二维数组:如果一维数组中的各个元素仍然是一维数组,那么它就是一个二维数组。

    二维数组的创建

    语法:   数组元素类型   数组名字[][];

                数组元素类型[][]  数组名字;

      注释:数组元素类型:决定了数组的数据类型,包括基本数据类型和费基本数据类型。

              数组名字:为一个合法的标识符,自己去定义

               符号[]:[]:指明该变量是一个数组类型变量,两个"[][]"表示要创建的是二维数组。

    注意:与一维数组一样,如果二维数组在声明时没有分配内存空间,同样也要使用new关键字类分配内存空间,然后才可以访问各个元素。

    分配内存空间:

    语法:数组元素类型 数组名字=new 数组元素类型[数组元素的个数][数组元素的个数];

    注释:第一个中括号的数字是一维数组的个数,第二个中括号的数字是这些一维数组的长度。

    例如:int a[][]=new int[2][4]   //分配后的a拥有两个长度是4的一维数组。

    二维数组的初始化:

    语法:type b[][]={value1,value2,value3,value4,value5...}

    注释:type:数组数据类型

               b:   数组名称,一个合法的标识符

             valuen:数组中各元素的值  

    例如:int myArr[][]={{12,10},{1,2,3}};   // myArr[1][2]=3

    对数组进行排序:通过Arrays类的静态sorts()方法可以实现对数组进行排序。

    语法:Arrays.sort(object)

    注释:object:进行排序的数组名称

             返回值:排序后的数组。   

    例如:  int arr []={18,45,34,12,20};

              Arrays.sort(arr);

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

              System.out.println(arr[i])
             }

    结果为:

    12

    18
    20
    34
    45

    填充替换数组元素:通过Arrays类的静态方法fill()来对数组中的元素进行替换。fill方法有两种参数类型int  和   byte两种。

    1.语法:fill(int a, int value )

    注释:a:  要进行元素替换的数组

             value:要存储数组中所有元素的值

             返回值:填充后的数组。

    例如:int a[]=new int[5];        //创建int型数组,长度为5

            Arrays.fill(a,10);            //使用10 对数组进行填充

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

            System.out.println(arr[i]);
             }

    原来的结果:0 0 0 0 ;

    现在的结果:10 10 10 10

    2.语法:fill(int[] a , int fromIndex , intfromIndex , int value)

    注释:a:  要进行填充的数组

             value:要存储数组中所有元素的值

             返回值:替换元素后的数组。

             fromIndex :要是用指定值填充的第一个元素的索引(包括)

             toIndex: 要是用指定值填充的最后一个元素的索引(不包括)

    例如:int a[]={45,2,10,56,14};

             Arrays.fill(a,1,5,8);

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

            System.out.println(arr[i]);
             }

    结果为:45 8 8 8 14

    复制数组:Arrays类的copyOf方法与copyOfrange方法实现对数组的复制

                 copyOf()复制数组到指定的长度

                 copyOfrange()将指定数组的指定长度复制到一个新数组中。

    语法:copyOf(arr,int newlength)           copyOfRange(arr,int formIndex ,int toIndex)  

    注释:    a:  要进行复制的数组对象

             返回值:复制指定位置后的数组。

             fromIndex :指定开始复制数组的索引位置, fromIndex必须在0至整个数组的长度之间(包括)

             toIndex: 要复制范围的最后索引位置,可以大于数组a的长度(不包括)

    例如:

            int a[]={45,2,10,56,14};

            Arrays. copyOfRange(a,1,4)  

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

            System.out.println(a[i]);
             }

    结果为:10 56 14

              

  • 相关阅读:
    HDU 1556 Color the ball
    ECJTUACM16 Winter vacation training #4 题解&源码
    深入理解树状数组
    Codeforces 712C Memory and De-Evolution
    Codeforces 712B Memory and Trident
    Codeforces 708A Letters Cyclic Shift
    也谈matlab中读取视频的一个重要函数mmreader
    What are the advantages of different classification algorithms?
    机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size
    若心觉醒 自然平静--记我的大三
  • 原文地址:https://www.cnblogs.com/514929hgy/p/6849273.html
Copyright © 2011-2022 走看看