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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540634.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540634.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540634.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

scala 拆分字符串翻轉_Scala程序分割字符串

scala 拆分字符串翻轉A string is a collection that stores multiple characters, it is an immutable sequence which cannot be changed. 字符串是存儲多個字符的集合&#xff0c;它是不可更改的不可更改的序列。 分割字符串 (Splitting a string) In Scala, using the spl…

[轉載] python 簡單示例說明os.walk和os.path.walk的不同

參考鏈接&#xff1a; 示例說明Python2.x和Python3.x之間的重要區別 import os,os.path def func(arg,dirname,names): for filespath in names: print os.path.join(dirname,filespath) if __name__"__main__": print "os.walk" index 1 for root,subd…

c#中索引器是什么_C#中的索引器

c#中索引器是什么An Indexer is a special feature of C# to use an object as an array. If you define an indexer in a class then it will behave like a virtual array. Indexer is also known as smart array in C#. It is not a compulsory or essential part of OOPS. …

asp.net MVC5為WebAPI添加命名空間的支持

前言 默認情況下&#xff0c;微軟提供的MVC框架模板中&#xff0c;WebAPI路由是不支持Namespace參數的。這導致一些比較大型的項目&#xff0c;無法把WebApi分離到單獨的類庫中。 本文將提供解決該問題的方案。 微軟官方曾經給出過一個關于WebAPI支持Namespace的擴展&#xff0…

[轉載] Python3.X 線程中信號量的使用方法示例

參考鏈接&#xff1a; 示例說明Python2.x和Python3.x之間的重要區別 信號量semaphore 是一個變量&#xff0c;控制著對公共資源或者臨界區的訪問。信號量維護著一個計數器&#xff0c;指定可同時訪問資源或者進入臨界區的線程數。下面這篇文章主要給大家介紹了關于Python3.X 線…

從流程的自動化中獲得最大價值的10種方式

流程自動化很好&#xff0c;如果它可以節省時間并減少錯誤。但是如果它不能在業務流程中“很好地契合”&#xff0c;那么會難以得到普及。問問有誰沒有對語音助手感到傷腦筋。 所幸的是&#xff0c;某些最佳實踐讓你可以從流程自動化中獲得最大價值&#xff0c;以下就是其中的1…

java中null是常量嗎_C_NULL Julia中的常量

java中null是常量嗎Julia| C_NULL常數 (Julia | C_NULL Constant) C_NULL is a constant of Ptr{Nothing} type in Julia programming language, it represents the null pointer value, which is used for C Null Pointer while calling external code. C_NULL是Julia編程語言…

[轉載] Python京東搶購

參考鏈接&#xff1a; 從Python獲取輸入 Python京東搶購 分析其中提交信息接口的參數&#xff0c;可以成功搶購商品&#xff0c;并且可以提交訂單。。。。2018年7月17日 提交信息的獲取 直接提交信息對post提交分析其中的參數。 經過分析參數大多數在&#xff1a;https…

6.04 從字符串中刪除不需要的字符

需求&#xff1a;刪除所有的0和元音字母。 select ename,replace(replace(replace(replace(replace(ename,A,),E,),I,),O,),U,) as stripped1,sal,replace(sal,0,) stripped2from emp;轉載于:https://www.cnblogs.com/liang545621/p/7518766.html

Scala分號

Scala分號 (Scala semicolons) A semicolon or semi-colon (;) is a punctuation mark in programming, it is used to separate multiple lines of code. It is common in major programming languages like C, C, Java, Pascal. In modern programming languages like Python…

[轉載] python通過adb獲取android手機耗電量

參考鏈接&#xff1a; 從Python中控制臺獲取輸入 把開發者模式打開&#xff0c;激活 adb 調試&#xff0c;然后可以使用以下python代碼獲取安卓手機的耗電量 # -*- coding: utf-8 -*- import re import os def getSelectDevice(): pip os.popen(adb devices) result pip.…

ES6之主要知識點(二) 變量的解構賦值。默認值

引自http://es6.ruanyifeng.com/#docs/destructuring 數組解構賦值默認值對象解構賦值用途1.數組的解構賦值 let [a, b, c] [1, 2, 3]; let [foo, [[bar], baz]] [1, [[2], 3]]; foo // 1 bar // 2 baz // 3let [ , , third] ["foo", "bar", "baz&…

python無符號轉有符號_Python | 散布符號

python無符號轉有符號There are multiple types of Scatter Symbols available in the matplotlib package and can be accessed through the command marker. In this article, we will show some examples of different marker types and also present a list containing all…

[轉載] 基于LSTM的股票預測模型_python實現_超詳細

參考鏈接&#xff1a; 從Python獲取輸入 文章目錄 一、背景二、主要技術介紹1、RNN模型2、LSTM模型3、控制門工作原理四、代碼實現五、案例分析六、參數設置七、結論完整程序下載 一、背景 近年來&#xff0c;股票預測還處于一個很熱門的階段&#xff0c;因為股票市場的波動…

shell -eom_EOM的完整形式是什么?

shell -eomEOM&#xff1a;消息結尾 (EOM: End Of Message) EOM is an abbreviation of "End Of Message". EOM是“消息結尾”的縮寫 。 It is an expression, which is commonly used in the Gmail platform. It is also written as Eom or eom. It is written at …

在eclipse中啟動Tomcat訪問localhost:8080失敗項目添加進Tomcat在webapp中找不到

軟件環境&#xff1a;Eclipse oxygen&#xff0c; Tomcat8.5 #在eclipse中啟動Tomcat訪問localhost:8080失敗 在eclipse中配置tomcat后&#xff0c;打開tomcat后訪問localhost:8080后無法出現登陸成功的界面,即無法出現下面的界面 在eclipse中的servers狀態欄中雙擊tomcat&…

[轉載] 【基礎教程】Python input()函數:獲取用戶輸入的字符串

參考鏈接&#xff1a; 從Python中控制臺獲取輸入 input() 是 Python 的內置函數&#xff0c;用于從控制臺讀取用戶輸入的內容。input() 函數總是以字符串的形式來處理用戶輸入的內容&#xff0c;所以用戶輸入的內容可以包含任何字符。 input() 函數的用法為&#xff1a; str…

程序員簡歷工作模式_簡歷的完整形式是什么?

程序員簡歷工作模式簡歷&#xff1a;簡歷 (CV: Curriculum Vitae) The CV is an abbreviation of Curriculum Vitae. It is a written outline summary of a persons educational training and qualifications and his other experiences. It is an absolute profile of a cand…

[轉載] Python新手寫出漂亮的爬蟲代碼1——從html獲取信息

參考鏈接&#xff1a; Python中從用戶獲取多個輸入 Python新手寫出漂亮的爬蟲代碼1 初到大數據學習圈子的同學可能對爬蟲都有所耳聞&#xff0c;會覺得是一個高大上的東西&#xff0c;仿佛九陽神功和乾坤大挪移一樣&#xff0c;和別人說“老子會爬蟲”&#xff0c;就感覺特別…

在Scala中設置&()方法

Scala中的Set&#xff06;()方法 (The Set &() method in Scala) The &() method in the Set is used to create a new set in Scala. This new set created contains all elements from the other two sets that are common for both of the given sets i.e. new set …