Java

数组

2022-02-22  本文已影响0人  马佳乐

数组:是同一类型(基本数据类型或引用数据类型)变量的有限有序集合。在Java语言中,数组本身也是一个对象。
数组中的每一个变量被称为数组元素,所有数组元素使用相同的数组名,使用下标唯一标识。数组下标的个数就是数组的维数。
根据数组下标的个数,数组分为一维数组、二维数组和多维数组。
在Java语言中,数组与其他基本类型的变量一样,也要遵循“先声明、后使用”的原则。

数组的声明

一维数组声明:

    数据类型  数组名[ ];  
    数据类型[ ]   数组名;

二维数组声明:

    数据类型数组名[ ][ ]; 
    数据类型[ ][ ]   数组名;

数组的类型,可以是基本数据类型或引用数据类型。
无需指明数组元素的个数,即方括号中无数字,也不为数组元素分配内存空间。
数组必须经过初始化分配内存后才能使用。
例如(正确的数组声明):

int age[];
int[] age;
int score[][];
float[][]  salary;
class Point{…}
Point p[];
Point[] p; 

数组的初始化

数组的初始化分为静态初始化和动态初始化

静态初始化的语法格式:

数据类型[] 数组名={值1,值2,…,值n};
声明与初始化必须在同一条语句中完成。
例如:

char[] c={'a','b','c','d','e'};
int a[]={1,2,3,4,5};
int score[][]={{1,2,3},{4,5,6}}; 
int grade[][]={{1,2},{4,5,6}}; 

动态初始化数组的语法格式:

创建一维数组: 数组名=new 数组元素类型[数组元素个数];
动态初始化时的数组元素类型需与声明数组时保持一致。
元素个数,即数组长度可以是常量,也可以是变量。
例如:

char s[];
s=new char[20];
char s[];
int n=20;
s=new char[n];

例如:

int age[];
age=new int[5];

也可以直接写成如下形式:

int age[]=new int[5];

创建二维数组: 数组名=new 数据类型[数组长度][数组长度];

   int score[][]=new int[2][3];
   int score[][]=new int[2][];
   score[0]=new int[3]; 
   score[1]=new int[3];

声明和初始化可以分在2条语句中完成,也可以在一条语句中完成。

char s[];
s=new char[20];
char s1[]=new char[20];
char[] s2=new  char[20];

使用动态初始化数组后,数组中的每一元素都被自动分配默认值:

数据类型 默认初值
整型(byte/short/int/long) 0
浮点型(float/double) 0.0
字符型(char) ‘\u0000‘(空字符)
布尔型(boolean) false
引用数据类型 null(空值)

如果已知数组的所有元素的值,也可使用如下格式完成动态初始化:数组名=new 数组元素类型[]{值1,值2,…,值n};

int age[];
age=new int[]{10,15,20,18,30};
    类名 数组名[]=new 类名[数组元素的个数];
    类名[] 数组名=new 类名[数组元素的个数]; 

数组元素的使用

数组元素的使用与变量的使用方法相同。
使用数组元素的格式:数组名[非负整数下标值]
例如:

a[0]=25;
score[0][0]=71;
a[0]=a[0]+25;
a[0]=a[0]+a[1];
a[0]=a[1]=25; 
public class Test {
    public static void main(String[] args) {
         int a[]=new int[5];
         System.out.println("a数组的长度是:"+a.length);
         int score[][]=new int [2][3];
         System.out.println("score数组的行数是:"+score.length);
         System.out.println("score数组的列数是:"+score[0].length);                
    }
}

数组举例:

public class Test {
    public static void main(String[] args) {
        int a[]={1,2,3,4,5};
        int b[]=new int[5];
        int c[]=new int[3];
        b=a;
        c=a;
        for(int i=0;i<5;i++)
            System.out.print(a[i]); 
        System.out.print('\n'); 
        for(int i=0;i<5;i++)
            System.out.print(b[i]);
        System.out.print('\n'); 
        for(int i=0;i<5;i++)
            System.out.print(c[i]);
        System.out.print('\n'); 
    }
}

数组元素的拷贝可以使用System类的arraycopy方法或Arrays类的copyOf()方法
Java数组名是一个引用,当将一个数组名赋值给另一个数组名时,实际上是名字的复制,此时指向同一地址单元。

上一篇 下一篇

猜你喜欢

热点阅读