一、基本介紹
1、總的來說
區別:
陣列特點:大小固定,只能存盤相同資料型別的資料
集合特點:大小可動態擴展,可以存盤各種型別的資料
2、具體說
區別:
陣列和集合都是java中的容器,
1、陣列宣告了它容納的元素的型別,而集合不宣告,
2、陣列是靜態的,一個陣列實體具有固定的大小,一旦創建了就無法改變容量了,而且生命周期也是不能改變的,還有陣列會做邊界檢查,如果發現有越界現象,會報RuntimeException例外錯誤,當然檢查邊界會以效率為代價,
而集合的長度是可變的,可以動態擴展容量,可以根據需要動態改變大小,集合提供更多的成員方法,能滿足更多的需求,
3、陣列的存放的型別只能是一種,Object陣列可以存多種型別;集合存放的型別可以不是一種,只可以存盤物件,也可以存盤基本資料型別,但必須是基本型別的包裝類(不加泛型時添加的型別是Object),
集合可以存放不同型別的參考型別,因為存入集合的元素都被轉化成了Object型別,之后再參考集合中的型別需要強制型別轉換,這就導致了集合的型別不安全,以及型別轉化的性能損耗
4、陣列是java語言中內置的資料型別,是線性排列的陣列,所以可以快速訪問其他的元素,
3、集合和陣列之間的轉換
陣列轉換為集合:
Arrays.asList(陣列)
示例:
int[] arr = {1,3,4,6,6};
Arrays.asList(arr);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
集合轉換為陣列:
集合.toArray();
示例:
List list = new ArrayList();
list.add("a"); list.add("b"); list.toArray(); System.out.println(list.toString());
二、提高
在java中,陣列不能放不同資料型別的值,
多型
定義陣列型別的時候定義為父類,而存進陣列為父類的子類
public class test2 {
public static void main(String args[]) {
father []a = new father[2];
a[0] = new son();
a[1] = new son2();
}
}
class father{
int i = 0;
}
class son extends father{
int x = 0;
}
class son2 extends father{
int y = 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/308435.html
標籤:面向對象
上一篇:“紫狐”挖礦僵尸網路利用新漏洞發起攻擊 360安全衛士第一時間支持防御
下一篇:類的關系(C++實作)
