Map介面和Iterator介面?
Map介面:儲存“鍵-值”對的資料 ----相當於高中的“函式y = f(x)” (x1,y1) (x2,y2) >key是不可重複的,使用Set存放。value可以重複的,使用Collection來存放的。一個key-value對構成一個entry(Map.Entry),entry使用Set來存放。 >新增、修改 put(Object key,Object value) 刪除remove(Object key) 獲取get(Object key) size() / keySet() values() entrySet() * |-----HashMap:主要的實現類,可以新增null鍵,null值 |-----LinkedHashMap:是HashMap的子類,可以按照新增進Map的順序實現遍歷 |-----TreeMap:需要按照key所在類的指定屬性進行排序。要求key是同一個類的物件。對key考慮使用自然排序 或 定製排序 |-----Hashtable:是一個古老的實現類,執行緒安全的,不可以新增null鍵,null值不建議使用。 Iterator介面:用來遍歷集合Collection元素 Collections工具類:操作Collection及Map的工具類,大部分為static的方法。 1.自定義泛型類:應用 public class DAO<T> { public void add(T t){ //.... } public T get(int index){ return null; } public List<T> getForList(int index){ return null; } public void delete(int index){ } } public class CustomerDAO extends DAO<Customer>{ } public class TestCustomerDAO { public static void main(String[] args) { CustomerDAO c = new CustomerDAO(); c.add(new Customer()); c.get(0); } } 【注意點】 1.物件例項化時不指定泛型,預設為:Object。 2.泛型不同的引用不能相互賦值。 3.加入集合中的物件型別必須與指定的泛型型別一致。 4.靜態方法中不能使用類的泛型。 5.如果泛型類是一個介面或抽象類,則不可建立泛型 類的物件。 6.不能在catch中使用泛型 7.從泛型類派生子類,泛型型別需具體化 4.泛型與繼承的關係 A類是B類的子類,G是帶泛型宣告的類或介面。那麼G<A>不是G<B>的子類!
Map介面:儲存“鍵-值”對的資料 ----相當於高中的“函式y = f(x)” (x1,y1) (x2,y2)
>key是不可重複的,使用Set存放。value可以重複的,使用Collection來存放的。一個key-value對構成一個entry(Map.Entry),entry使用Set來存放。
>新增、修改 put(Object key,Object value) 刪除remove(Object key) 獲取get(Object key) size() / keySet() values() entrySet()
* |-----HashMap:主要的實現類,可以新增null鍵,null值
|-----LinkedHashMap:是HashMap的子類,可以按照新增進Map的順序實現遍歷
|-----TreeMap:需要按照key所在類的指定屬性進行排序。要求key是同一個類的物件。對key考慮使用自然排序 或 定製排序
|-----Hashtable:是一個古老的實現類,執行緒安全的,不可以新增null鍵,null值不建議使用。
Iterator介面:用來遍歷集合Collection元素
Collections工具類:操作Collection及Map的工具類,大部分為static的方法。
1.自定義泛型類:應用
public class DAO<T> {
public void add(T t){
//....
}
public T get(int index){
return null;
}
public List<T> getForList(int index){
return null;
}
public void delete(int index){
}
}
public class CustomerDAO extends DAO<Customer>{
}
public class TestCustomerDAO {
public static void main(String[] args) {
CustomerDAO c = new CustomerDAO();
c.add(new Customer());
c.get(0);
}
}
【注意點】
1.物件例項化時不指定泛型,預設為:Object。
2.泛型不同的引用不能相互賦值。
3.加入集合中的物件型別必須與指定的泛型型別一致。
4.靜態方法中不能使用類的泛型。
5.如果泛型類是一個介面或抽象類,則不可建立泛型
類的物件。
6.不能在catch中使用泛型
7.從泛型類派生子類,泛型型別需具體化
4.泛型與繼承的關係
A類是B類的子類,G是帶泛型宣告的類或介面。那麼G<A>不是G<B>的子類!