Map的取值方式介紹
values():方法是獲取集合中的所有的值----沒有鍵,沒有對應關係,
KeySet():將Map中所有的鍵存入到set集合中。因為set具備迭代器iterator()方法。所以可以使用迭代方式取出所有的鍵,接著根據get(key)方法。獲取每一個鍵對應的值。 keySet():迭代後只能通過get(key)取值
entrySet():Set<Map.Entry<K,V>> entrySet() //返回此對映中包含的對映關係的 Set 檢視。 Map.Entry表示對映關係。entrySet():迭代後可以使用e.getKey(),e.getValue()分別取key值和value值。返回的是Entry介面 。
一、values()方法
package sample; import java.util.*; class MapTestBrower { public static void main(String[] agrs) { HashMap<Integer,String> hm=new HashMap<Integer,String>(); hm.put(1,"張無忌"); hm.put(2,"李斯特"); hm.put(5,"米老鼠"); hm.put(3,"鬥戰勝佛"); hm.put(4,"唐老鴨"); Collection<String> collection=hm.values(); System.out.println(collection);//輸出collection中的內容 } }
輸出結果如下所示:
由結果可以看出,values獲得的結果中只有值而沒有鍵
當然,我們也能夠採用以下方式輸出:
Collection c=hm.values();
for(Object o:c)
{
if(o.equals("李斯特"))
System.out.println(o);
}
這樣的話就可以進行對內容的檢測了,如果有符合條件的,就可以進行操作了二. keySet()方式。
Set<K> keySet() //返回值是個只存放key值的Set集合(集合中無序存放的)
package sample;
import java.util.*;
class MapTestBrower
{
public static void main(String[] agrs)
{
HashMap<Integer,String> hm=new HashMap<Integer,String>();
hm.put(1,"張無忌");
hm.put(2,"李斯特");
hm.put(5,"米老鼠");
hm.put(3,"鬥戰勝佛");
hm.put(4,"唐老鴨");
Set<Integer> set=hm.keySet();//先獲取Map集合中的所有鍵值,由於剛開始設定為Integer,所以使用泛型限定
Iterator<Integer> it=set.iterator();//使用上面獲取的set獲取迭代器Iterator
while(it.hasNext())//判斷迭代器中向下是否還有元素
{
Integer temp=it.next();//獲取鍵
System.out.println(temp+" "+hm.get(temp));//輸出鍵和對應的值
}
}
}
結果如下所示:
三. entrySet()方式:
Set<Map.Entry<K,V>> entrySet() //返回對映所包含的對映關係的Set集合(一個關係就是一個鍵-值對),就是把(key-value)作為一個整體一對一對地存放到Set集合當中的。
如下程式碼所示:
package sample;
import java.util.*;
import java.util.Map.*;//匯入Map.*包
class MapTestBrower
{
public static void main(String[] agrs)
{
HashMap<Integer,String> hm=new HashMap<Integer,String>();
hm.put(1,"張無忌");
hm.put(2,"李斯特");
hm.put(5,"米老鼠");
hm.put(3,"鬥戰勝佛");
hm.put(4,"唐老鴨");
Set<Entry<Integer,String>> set=hm.entrySet();//通過entrySet()方法將map集合中的對映關係取出(這個關係就是Entry型別)
Iterator<Entry<Integer,String>> it=set.iterator();//將關係集合entrySet進行迭代,存放到迭代器it中
while(it.hasNext())
{
Entry<Integer,String> e=it.next();//獲取Entry型別關係物件e
System.out.println(e.getKey()+" "+e.getValue());//通過關係物件獲取Key及值,並且進行輸出
}
}
}
結果如下所示(輸出結果相同):
雖然使用keyset及entryset來進行遍歷能取得相同的結果,但兩者的遍歷速度是有差別的
keySet():迭代後只能通過get()取key
entrySet():迭代後可以e.getKey(),e.getValue()取key和value。返回的是Entry介面
keySet()的速度比entrySet()慢了很多,也就是keySet方式遍歷Map的效能不如entrySet效能好,為了提高效能,以後多考慮用entrySet()方式來進行遍歷。
以上就是Map中取值的方式
相關推薦
Map的取值方式介紹
在Map集合中,有如下定義: values():方法是獲取集合中的所有的值----沒有鍵,沒有對應關係, KeySet():將Map中所有的鍵存入到set集合中。因為set具備迭代器iterator()方法。所以可以使用迭代方式取出所
Map的幾種遍歷取值方式
今天心情不好,上午花了一點時間來寫Demo,到網上逛了逛,也算整理了一下基礎知識,未來的路還有很長,這樣的Demo也會有很多。 import org.junit.Test; import java.util.*; public class test { @Test publ
JavaScript Json與Map互轉以及Map物件的取值方式
Json格式(Json字串) : var json='{"name": "lily","age":"15"}' Map格式: var map={name: "lily", age:"15"} Map取值: var name=map["name"]; 或 var
Map的兩種取值方式keySet和entrySet
Map與Collection在集合框架中屬並列存在、 Map是一次新增一對元素(儲存的是夫妻,哈哈)。Collection是一次新增一個元素(儲存的是一個單體)。 Map儲存的是鍵值對。 Map儲存元素使用put方法, Collection
轉+總結!! 關於jsp頁面取值方式
方式 deb 內置對象 req disabled 網上 查看 請求參數 ack 1. 前臺往後臺傳值,通過提交表單,在後臺有set,get方法,可以直接取到。如果通過request.getParameter(paramName) 去獲取通過會報空指針異常。 其中r
py呼叫oracle的儲存過程,注意procedure的out取值方式
#!/usr/bin/env python import sys import csv import cx_Oracle import codecs import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
HashMap存值與取值方式
Hashmap:(鍵值對方式儲存) 底層:陣列+連結串列結構 存值方式(陣列初始化長度為16): 例如是一個長度16的陣列:相對於陣列長度求模 再次儲存: 取值: 為什麼說hashm
json字串資料轉成json物件取值方式
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import io.swagger.models.auth.I
MyBatis總結(十八)--#{}取值方式時更加豐富的用法
本文內容來自尚矽谷 使用方式 引數位置支援的屬性 – javaType、jdbcType、mode、numericScale、 resultMap、typeHandler、jdbcTypeName、expression 這裡為可能為空的
Numpy 與 DataFrame取值方式對比
對比Numpty 與 DataFrame預設索引取值不同點 Numpy索引取值 #Numpy索引取值 data=np.empty((2,4),dtype=int) print(data) ''' [[4128860 6029375 3801157 7340124] [7602297 727460
js取值方式
。 jQuery : $("#idName").html(); $(".className").html(); javaScript : document.getElementById(“idName”).innerHTML ;
HashMap取值方式。
public static void main(String[] args){ Map<String,String> map=new HashMap<>(); map.put(“1”,“A”); map.put(“2”,“B”); map.pu
mybatis中兩種取值方式?談談Spring框架理解?
1.mybatis中兩種取值方式? 回答:Mybatis中取值方式有幾種?各自區別是什麼? Mybatis取值方式就是說在Mapper檔案中獲取service傳過來的值的方法,總共有兩種方式,通過 $ 和 # , # 是 我們最常用的方式。 我們都說Mybatis是封裝了JDBC,所以兩種方式的區別還要
Mybatis的兩種取值方式#{ } 與${ } 使用時需要注意的地方
需要對映的介面: /** * 根據id查詢管理員 * @param id * @return */ Manager retrieveManagerById(@Param("id")Integer id); /** * 根據名字查詢管理員 * @param name * @ret
Struts2標籤取值方式一/二
Struts2標籤取值方式 1.標籤取值方式一 —— <s:property value="" /> 當Action的valueStack中有該屬性的值時,只需直接使用該屬性的名字即可; 當Action的valueStack中沒有該屬性的值
jsp前端jstl的map取值
${map['key']} 之前一直用的辦法: <c:if test="${bean.type eq 0}">採購單</c:if> <c:if test="${bean.type eq 1}">收貨單</c:if> 。。
LoadRunner中,引數化時Unique取值方式的理解
LoadRunner中,引數化時Unique取值方式的理解 2012年10月15日 18:10:36 瑞秋 閱讀數:10028 在LoadRunner
Struts2標籤取值方式
1.標籤取值方式一 通過<s:property value="" />取值 當Action的valueStack中有該屬性的值時,只需直接使用該屬性的名字即可; 當Action的valueStack中沒有該屬性的值時,比如在sessi
struts 3種從jsp頁面 取值方式
Action實現方式: 1. 普通java類 2. 實現action介面實現execute方法 3. 繼承ActionSupport類 取值方式: 1. 成員屬性set方法取值 2.成員實體屬性 Page: <form action="loginthree"&
指標指向陣列取值方式
在go的使用中發現用c的指標取值方式取不到於是嘗試多次後解決問題知道如何取值了 var bArray = [5]float32{0, 1, 2,3,4} fmt.Println("開始