Java数组

 

1. 一维数组的声明方式:

type var[]; 或type[] var;

 

声明数组时不能指定其长度(数组中元素的个数),

 

Java中使用关键字new创建数组对象,格式为:

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

 

实例:

TestNew.java:

 

 

public class TestNew  
{  
     public static void main(String args[]) {  
         int[] s ;  
         int i ;  
         s = new int[5] ;  
         for(i = 0 ; i < 5 ; i++) {  
             s[i] = i ;  
         }  
         for(i = 4 ; i >= 0 ; i--) {  
             System.out.println("" + s[i]) ;  
         }  
     }   
} 
 

 

初始化:

 

1.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;

2.静态初始化:在定义数字的同时就为数组元素分配空间并赋值;

3.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。

 

实例:

 

TestD.java(动态):

 

 

public class TestD  
{  
     public static void main(String args[]) {  
         int a[] ;  
         a = new int[3] ;  
         a[0] = 0 ;  
         a[1] = 1 ;  
         a[2] = 2 ;  
         Date days[] ;  
         days = new Date[3] ;  
         days[0] = new Date(2008,4,5) ;  
         days[1] = new Date(2008,2,31) ;  
         days[2] = new Date(2008,4,4) ;  
     }  
}  
 
class Date  
{  
     int year,month,day ;  
     Date(int year ,int month ,int day) {  
         this.year = year ;  
         this.month = month ;  
         this.day = day ;  
     }  
}  
 

TestS.java(静态):

 

 

public class TestS     
{     
     public static void main(String args[]) {     
         int a[] = {0,1,2} ; 
	 String stringArray[]={"abc", "How", "you"};    
         Time times [] = {new Time(19,42,42),new Time(1,23,54),new Time(5,3,2)} ;     
     }     
}     
 
class Time     
{     
     int hour,min,sec ;     
     Time(int hour ,int min ,int sec) {     
         this.hour = hour ;     
         this.min = min ;     
         this.sec = sec ;     
     }     
}  
 

TestDefault.java(默认):

 

 

public class TestDefault     
{     
     public static void main(String args[]) {     
         int a [] = new int [5] ;     
         System.out.println("" + a[3]) ;     
     }     
}   
 

 

 

2.二维数组的定义


type arrayName[ ][ ];

type [ ][ ]arrayName;

 

2-1.二维数组的初始化

 

  ◇ 静态初始化

 

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

     Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。

 

  ◇ 动态初始化

 

  1) 直接为每一维分配空间,格式如下:

 

arrayName = new type[arrayLength1][arrayLength2];
int a[ ][ ] = new int[2][3];
 

  2) 从最高维开始,分别为每一维分配空间:

 

 

arrayName = new type[arrayLength1][ ];
arrayName[0] = new type[arrayLength20];
arrayName[1] = new type[arrayLength21];
arrayName[arrayLength1-1] = new type[arrayLength2n];
 

 

  3) 例:

  二维简单数据类型数组的动态初始化如下,

 

 

int a[ ][ ] = new int[2][ ];
a[0] = new int[3];
a[1] = new int[5];
 

 

  对二维复合数据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。

  而且,必须为每个数组元素单独分配空间。

  例如:

 

 

String s[ ][ ] = new String[2][ ];
s[0]= new String[2];//为最高维分配引用空间
s[1]= new String[2]; //为最高维分配引用空间
s[0][0]= new String("Good");// 为每个数组元素单独分配空间
s[0][1]= new String("Luck");// 为每个数组元素单独分配空间
s[1][0]= new String("to");// 为每个数组元素单独分配空间
s[1][1]= new String("You");// 为每个数组元素单独分配空间
 

 

 

2-2.二维数组元素的引用

  对二维数组中的每个元素,引用方式为:arrayName[index1][index2]

  例如: num[1][0];

 

 

 

对于Array, length是一个数据成员(a data field).

 

a = new int [100];
a.length;
 

 

 对于String, length是方法(a method).

 

String a = "abcde";
a.length();
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值