集合、加強for、泛型

Collection集合:
Collection是層次結構中的根接口,存儲的元素爲對象,(也就是說只能存儲引用數據類型,不能存儲基礎數據類型),具體可查詢API。
集合與數組的區別:
一、集合只能存放引用數據類型,不能存放基本數據類型,存儲基本類型,須要使用基本數據類型對應的包裝數據類型;數組能夠存聽任意數據類型
二、集合建立對象的時候,能夠不定義指定長度,也可不指定內容;數組建立對象的時候必須指定長度或者元素。
三、一個集合對象中能夠存放多種數據類型,而數組中只能存放一種數據類型。
四、集合的長度是可變的,數組長度是固定的。
選用的規則:當須要一個容器,既不能指定容器的內容,也沒法肯定容器的長度時,可使用集合,不然建議使用數組。數組的效率是相對較高數組

Iterator迭代器:
當從集合獲取元素的時候,有一個通用的流程,將這個通用的流程描述成了一個接口,這個接口就是Iterator。
迭代器能操做集合也能操做數組!!!
如何操做迭代器
迭代器的經常使用方法;
hasNext()、next()
注意事項:當一次循環中須要屢次使用元素值時,必定不能使用匿名對象,不然會繁盛元素找不到的異常;
當迭代器遍歷幾個的過程當中,不容許使用集合自身的方法,改變集合的長度。對象

加強for:
加強for的實質就是一個迭代器;加強for只能在JDK1.5以後才能使用;在加強for的內部不容許改變集合的長度。
加強for格式:
for(元素的數據類型 變量名 : 被迭代的集合或數組){}
泛型:
特殊的變量;保存的是引用數據類型;
帶泛型的類:類定義格式:
public class 類名<泛型名>{
//成員變量
private 泛型名 name;
//成員方法
修飾符 泛型名 方法名(泛型名 參數名){接口

}
}
對象建立格式:
類名<具體的數據類型> 對象名 = new 類名<具體的數據類型>();
注意事項:<具體的數據類型>在等號左右兩邊必須保持一致,不能使用多態
泛型的好處:一、能夠避免數據類型的強轉二、能夠將運行時期可能發生的異常提早到了編譯時期。
泛型方法:當定義一個類的時候,沒有使用泛型,name定義方法的時候,容許針對某一個方法使用泛型
格式:
修飾符 <泛型名> 泛型名 方法名(泛型名 參數名){
這種方法額發回執類名取決於參數的數據類型
}
這種方法調用的時候,能夠調用任意數據類型的參數值。
泛型接口:
格式:
public interface 接口名<泛型名>{
抽象方法的返回值和參數類型名

public abstract 泛型名 方法名(泛型名 參數名);
}
因爲接口不能直接建立對象,所以接口中的泛型的值有兩種賦值的方法;
方法1:定義子類的時候,直接傳遞;(寫死了)
public class 子類 implement 接口名<具體的數據類型>{}
方法2:定義子類的時候,子類也子類也規定泛型,name未來建立子類對象的時候,會一併將泛型的值傳遞給接口;
格式:
public class 子類<泛型名> implement 接口名<泛型名(必須與子類的泛型相同)>{}
泛型通配符
因爲泛型中沒有多態,因此採用泛型通配符的形式拜師多種數據類型
格式:
?Extends 具體的數據類型 限定了上限
?Super具體的數據類型 限定了下限io

相關文章
相關標籤/搜索