1. 程式人生 > >資料結構:java陣列特點以及宣告陣列類

資料結構:java陣列特點以及宣告陣列類

JAVA陣列的特點:動態陣列,具有長度屬性length,引用資料型別

  1. 動態陣列是指,在宣告陣列變數之後,使用new運算子動態申請指定容量(儲存單元個數)的資料儲存空間;當陣列不再被使用時,java將自動收回陣列佔用的儲存空間。

  2. 每個陣列變數都具有長度屬性length,採用“陣列變數.length"格式表示陣列容量。

  3. 引用資料型別指:一個數組變數儲存一個數組的引用,即該陣列佔用的一塊儲存空間的首地址,取決於陣列元素所屬的資料型別。 陣列元素的資料型別既可以是基本資料型別,也可以是引用資料型別,對陣列元素所能進行的操作,取決於陣列元素所屬的同一個資料型別。 兩個陣列賦值,傳遞陣列引用,使得兩個陣列變數引用同一個陣列。

  4. 陣列可以作為方法的引數和返回值,引數傳遞規則同賦值,即傳遞陣列引用。 如果宣告陣列是方法的形式引數,呼叫時,實際引數向形式引數傳遞陣列引用,使得形式引數與實際引數引用同一個陣列,因此,在方法體中,任何對形式引數引用陣列元素的修改都作用於實際引數用的陣列元素。 如果宣告方法返回陣列,在方法體中,宣告區域性變數temp引用一個動態建立的陣列;返回時,向呼叫者傳遞的是區域性變數temp所引用的陣列。當方法執行完時,java將收回區域性變數temp所佔用的儲存空間,但不會收回temp所引用的陣列。

在這裡插入程式碼片
/*線性儲存的隨機數集合
 * 本題目的:
 * 1.使用java的一維陣列,物件陣列作為方法的引數和和返回值;
 * 2.輸出物件的通用方法;
 * 3.宣告類,包含對陣列操作的通用方法;
 * 4.隨機數集合,線性儲存
*/

package diyizhang;

public  class Array1
{
public static void print(Object[] value)
{
	for(Object obj:value)
		System.out.print(obj==null?"null":""+obj.toString());
	System.out.println();
	}//產生n個隨機數(可重複),範圍是0~size-1,返回整數物件陣列
public static Integer[]randomInteger(int n,int size)
{
	Integer[]values=new Integer[n];//java.lang.Integer是int型別的包裝類
	for(int i=0;i<values.length;i++)//遍歷陣列,訪問每個元素僅一次
			values[i]=new Integer((int)(Math.random()*size));
//java.lang.Math.random()方法產生一個0~1之間double型別的隨機數
	return values;//返回陣列引用
	}
}