JAVA---数组

Posted Yi_Warmth

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA---数组相关的知识,希望对你有一定的参考价值。

一维数组本质上是一组相同类型的线性集合,当在程序需要处理一组数据,或者传递数据时,可以应用这种类型的数组。

创建一维数组:数组作为对象允许使用new关键字进行分配内存。在使用数组之前,必须首先定义数组变量所属类型。

1:int arr[];     //声明int型数组,数组中的每个元素都是int型。

String  str[];       //声明string型数组,数组中的每个元素都是String型。

声明了数组只是给出了数组名字和元素的数据类型,要想真正使用数组,还要为它分配内存空间。在为数组分配内存时,必须指明数组的长度。

数组名字 =new  数组元素类型[数组元素的个数];        arr=new int[5];

数组是通过下标来区分数组中的不同元素,数组的下标是从0开始的。

2:声明数组的同时为数组分配内存。

数组元素类型      数组名=new 数组元素类型[数组元素的个数];

int month=new int[2];

初始化一维数组:

int arr=new int[]{1,3,2,5,8};

int arr={1,3,2,5,8};

eg:

public class GetDay(){

          public static void main(String[]args){

                      int day=new int[]{31,28,30,31};

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

                         System.out.println("day[i]");

                            }

}

}

二维数组的创建及使用

如果一维数组中的各个元素仍然是一个数组,那么它就是一个二维数组。二维数组常用于表示表中的信息以列和行的形式组织,第一个下标代表元素所在行,第二个下标代表元素所在的列。

二维数组可以看作是特殊的一维数组,因此,二维数组的创建同样有两种方式。

1:先声明,再用new运算符进行内存分配。

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

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

int arry[][];

同一维数组一样,二维数组在声明时也没有分配内存空间,同样要使用new关键字来分配内存,然后才可以访问每个元素。

对于高维数组,有两种为数组分配内存的方式:

(1)直接为每一维分配内存空间。

a=new int[2][4]

分别为每一维分配内存,

a=new int[2][];

a[0]=new int[2];;

a[1]=new int[3];

(2):声明的同时为数组分配内存

第二种方式同第一种实现的相同功能。使用方式为二维码数组分配内存时,首先指定最左边维数的内存,然后单独地给余下的维数分配内存。

二维数组初始化:

type arryname[][]={value1,value2.....valuen};

int arryname[][]={{1,2},{45,10}};

使用二维数组:

public  class Matrix{

             public  static void main(String[]args){

                         int a[][]=new int[3][4];

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

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

                                         }

                          }

}

对于整型二维数组,创建成功之后系统会赋给数组中每个元素初始值0.

数组的基本操作:

1:遍历数组

遍历二维数组使用双层for循环。

public  class Trap{

            public  static void main(String[]args){

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

                         for(int k=0;k<b.length;k++){

                                         for(int j=0;j<b[k].length;j++){

                                              System.out.println(b[k][j]);

                                                                   }

                                          }

                          }

}

在遍历数组时使用foreach语句可能会更简单。

public  class Tautog{

             public  static  void main(String[]args){

                                   int b[][]=new int[][]{{4,3},{1,2}};

                                   System.out.println("数组中的元素是:");

                                   for(int x[]:b){

                                               for(int y[]:x){

                                                       if(x==b.length){

                                                                   System.out.println(y);

                                                                       }

                                                          else

                                                                  System.out.println(e+"\");

                }

              }

                 }

   填充替换数组元素

数组中的元素定义完成之后,可通过arry类中fill来对数组中的元素进行替换。该方法通过重载形式可完成任意类型的数组元素的替换。

fill(int a[],int value):   a为要替换元素的数组,Value为要进行替换的数据。将指定的int值分给数组中的每一个元素。

import java.util.Arrays;

 public  class Swap{

             public  static  void  main(String[]args){

                        int arr[]=new int[5];

                        Array.fill(arr, 8);

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

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

                                             }

                        }

}

fill(int []a,int fromIndex,int toIndex,int value);                 该方法将指定的int值分配给指定范围中的每一个元素。如果fromIndex==toIndex,则填充范围为空。

import  java.util.Arrays;

public class  Displace{

            public  static void main(String[]args){

                        int arr[][]=new int[][]{45,12,2,10};

                        Array.fill(arr,1,2,8);

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

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

                                           }

                          }

}

对数组进行排序:

通过Arrays类静态 sort()方法可以实现对数组的排序。sort()方法提供了多种重载形式,可以对任意类型的数组进行升序排序。

Array.sort(object)

import  java.util.Arrays;

public  class Taxis{

            public  static  void main(String[]args){

                        int arr[]={23,42,12,8};

                        Arrays.sort(arr);

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

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

                                        }

                         }

}

上述实例是对整形数组进行排序。java中的string类型数组的排序算法是根据字典编排顺序排序的。因此数字排在字母前面,大写字母排在小写字母前面。

复制数组:

Arrays类的copyOf()方法与copyOfRange() 方法可以实现对数组的复制,copyOf()是复制数组至指定的长度,copyOfRange()方法则将数组指定长度复制到一个新的数组中。

copyOf(arr,int newlength);

arr:要进行复制的数组;     newlength:指复制后的长度。如果新数组的长度大于数组arr的长度,则用0进行填充(根据复制数组的类型来决定填充的值,整型数组决定用0来填充的,char型数组则使用null来填充)。如果复制后的数组长度小于数组arr的长度,则会从数组arr的第一个元素开始截取满足新数组长度为止。

eg:

 import java.util.Arrays;

 public  class Cope{

              public static void main(String[]args){

                           int arr[]=new int[]{23,42,12};

                           int newarr[]=Arrays.copyOf(arr,5);

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

                                      System.out.println(newarr[i]);

                                                   }

                              }

}

copyOfRange()方法:      copyOfRange(arr,int fromIndex,int toIndex);   arr:要进行复制的数组对象。fromIndex:指定开始复制数组的索引位置。fromIndex必须在0至整个数组长度之间。新数组包括索引fromIndex的元素。  toIndex:要复制范围的最后索引位置。可大于数组arr的长度。新数组不包括索引是toIndex的元素。

eg:

import java.util.Arrays;

public class Repeat{

           public  static  void main(String[]args){

                        int arr[]=new int[]{23,42,12,84,10};

                        int newarr[]=Array.copyOfRange(arr,0,3);

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

                                 System.out.println(newarr[i]);

                                       }

                    }

}

 

}

                                   

 

以上是关于JAVA---数组的主要内容,如果未能解决你的问题,请参考以下文章

java数组排序

java中的数组语法

java 为啥数组名.length就能获取数组的长度

java中如何创建动态数组

java怎么创建一个数组,每个元素是一个数组

java中如何创建字符串数组?