. 集合儲存物件
Java集合中實際存放的只是物件的引用,每個集合元素都是一個引用變數,實際內容都放在堆記憶體或者方法區裡面,但是基本資料型別是在棧記憶體上分配空間的,棧上的資料隨時就會被收回的。
2. 基本型別資料如何解決呢?
可以透過包裝類把基本型別轉為物件型別,存放引用就可以解決這個問題。更方便的,由於有了自動拆箱和裝箱功能,基本資料型別和其對應物件(包裝類)之間的轉換變得很方便,想把基本資料型別存入集合中,直接存就可以了,系統會自動將其裝箱成封裝類,然後加入到集合當中。
示例程式碼:
int i = 10;
Integer in = new Integer(i);//手動將i包裝為Integer型別物件
HashSet set = new HashSet();//定義一個Set集合
set.add(in);//將包裝類物件加入該集合
System.out.println(set);//列印結果
同樣的效果(自動包裝):
HashSet set = new HashSet();
set.add(i);//系統會自動將i裝箱為Integer型別的物件然後再存入set集合中
System.out.println(set);
. 集合儲存物件
Java集合中實際存放的只是物件的引用,每個集合元素都是一個引用變數,實際內容都放在堆記憶體或者方法區裡面,但是基本資料型別是在棧記憶體上分配空間的,棧上的資料隨時就會被收回的。
2. 基本型別資料如何解決呢?
可以透過包裝類把基本型別轉為物件型別,存放引用就可以解決這個問題。更方便的,由於有了自動拆箱和裝箱功能,基本資料型別和其對應物件(包裝類)之間的轉換變得很方便,想把基本資料型別存入集合中,直接存就可以了,系統會自動將其裝箱成封裝類,然後加入到集合當中。
示例程式碼:
int i = 10;
Integer in = new Integer(i);//手動將i包裝為Integer型別物件
HashSet set = new HashSet();//定義一個Set集合
set.add(in);//將包裝類物件加入該集合
System.out.println(set);//列印結果
同樣的效果(自動包裝):
int i = 10;
HashSet set = new HashSet();
set.add(i);//系統會自動將i裝箱為Integer型別的物件然後再存入set集合中
System.out.println(set);