日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java.util (Collection接口和Map接口)

發布時間:2025/3/8 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java.util (Collection接口和Map接口) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1:Collection和Map接口的幾個主要繼承和實現類

? ? ? ? ? ? ? ??

?

1.1 ?Collection接口

  Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)。一些Collection允許相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接繼承自Collection的類,Java SDK提供的類都是繼承自Collection的“子接口”如List和Set。

  如何遍歷Collection中的每一個元素?不論Collection的實際類型如何,它都支持一個iterator()的方法,該方法返回一個迭代子,使用該迭代子即可逐一訪問Collection中每一個元素。典型的用法如下:
    Iterator it = collection.iterator(); // 獲得一個迭代子
    while(it.hasNext()) {
      Object obj = it.next(); // 得到下一個元素
    }

1.1.1?Iterator 接口

  Iterator接口也是Java集合框架的成員,但它與Collection系列、Map系列的集合不一樣:Collection系列集合、Map系列集合主要用于盛裝其他對象,而Iterator則主要用于遍歷(即迭代訪問)Collection集合中的元素,Iterator對象也被稱為迭代器。

?2 Map接口

  Map是一個單獨的接口,不繼承于Collection。Map是一種把鍵對象和值對象進行關聯的容器。一個key->value的對象

特點:key不允許重復。?

?? ? ? ?映射與集或列表有明顯區別,映射中每個項都是成對的,Map是把鍵對象和值對象進行關聯的容器。映射中存儲的每個對象都有一個相關的關鍵字(Key)對象,關鍵字決定了對象在映射中的存儲位置,檢索對象時必須提供相應的關鍵字,就像在字典中查單詞一樣。關鍵字應該是唯一的,也就是說Map中的鍵對象不允許重復,這是為了保證查詢結果的一致性。

  關鍵字本身并不能決定對象的存儲位置,它需要對過一種散列(hashing)技術來處理,產生一個被稱作散列碼(hash code)的整數值,散列碼通常用作一個偏置量,該偏置量是相對于分配給映射的內存區域起始位置的,由此確定關鍵字/對象對的存儲位置。理想情況下,散列處理應該產生給定范圍內均勻分布的值,而且每個關鍵字應得到不同的散列碼。

實現類:?

????HashMap?實現一個鍵到值映射的哈希表,通過鍵取得值對象,沒有順序,通過get(key)來獲取value,允許存儲空對象,而且允許鍵是空(由于鍵必須是唯一的,當然只能有一個);?

?? ?HashTable?實現一個映象,所有的鍵必須非空。為了能高效的工作,定義鍵的類必須實現hashcode()方法和equal()方法。這個類是前面java實現的一個繼承,并且通常能在實現映象的其他類中更好的使用。

?? ?當元素的順序很重要時選用TreeMap,當元素不必以特定的順序進行存儲時,使用HashMap。Hashtable的使用不被推薦,因為HashMap提供了所有類似的功能,并且速度更快。當你需要在多線程環境下使用時,HashMap也可以轉換為同步的。

2.1?Map.Entry

  Map是java中的接口,Map.Entry是Map的一個內部接口。

  Map提供了一些常用方法,如keySet()、entrySet()等方法。

  keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一個Set集合,此集合的類型為Map.Entry。

  Map.Entry是Map聲明的一個內部接口,此接口為泛型,定義為Entry<K,V>。它表示Map中的一個實體(一個key-value對)。接口中有getKey(),getValue方法。

public class MapTest {public static void main(String[] args) {Map<String,String> map = null;map = new HashMap<String,String>();map.put("name", "小明");map.put("age", "18");map.put("heigh", "175");// 遍歷Map的方法1Set<Map.Entry<String,String>> set1 = map.entrySet();Iterator<Entry<String, String>> iterator = set1.iterator(); while( iterator.hasNext()) {Entry<String, String> entry = iterator.next();Object key = entry.getKey();System.out.println(key);}// 遍歷Map的方法2Set<String> set2 = map.keySet();Iterator<String> iterator1 = set2.iterator();while(iterator1.hasNext()) {Object key = iterator1.next();Object value = map.get(key);System.out.println("key=" + key +" " + "value= " + value);}// 遍歷Map中value的值Collection<String> c = map.values();Iterator<String> iterator3 = c.iterator();while(iterator3.hasNext()) {Object value = iterator3.next(); System.out.println(value);}}}

轉載于:https://www.cnblogs.com/myseries/p/7508110.html

總結

以上是生活随笔為你收集整理的java.util (Collection接口和Map接口)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。