ListSet和Map?
Java中的集合包括三大類,它們是Set、List和Map。它們都處于
java.util
包中,Set、List和Map都是接口。Set中的對象不按特定方式排序,并且沒有重復對象。但它的有些實現類能對集合中的對象按特定方式排序,例如TreeSet類,它可以按照默認排序,也可以通過實現java.util.Comparator
接口來自定義排序方式。List中的對象按照索引位置排序,可以有重復對象,允許按照對象在集合中的索引位置檢索對象,如通過list.get(i)方式來獲得List集合中的元素。Map中的每一個元素包含一個鍵對象和值對象,它們成對出現。鍵對象不能重復,值對象可以重復。Map的功能方法 : 方法put(Object key, Object value)添加一個“值”(想要得東西)和與“值”相關聯的“鍵”(key)(使用它來查找)。方法get(Object key)返回與給定“鍵”相關聯的“值”。可以用containsKey()和containsValue()測試Map中是否包含某個“鍵”或“值”。標準的Java類庫中包含了幾種不同的Map:HashMap, TreeMap, LinkedHashMap, WeakHashMap, IdentityHashMap。它們都有同樣的基本接口Map,但是行為、效率、排序策略、保存對象的生命周期和判定“鍵”等價的策略等各不相同。執行效率是Map的一個大問題。看看get()要做哪些事,就會明白為什么在ArrayList中搜索“鍵”是相當慢的。而這正是HashMap提高速度的地方。HashMap使用了特殊的值,稱為“散列碼”(hash code),來取代對鍵的緩慢搜索。“散列碼”是“相對唯一”用以代表對象的int值,它是通過將該對象的某些信息進行轉換而生成的。所有Java對象都能產生散列碼,因為hashCode()是定義在基類Object中的方法。下一篇模什么時候念mo