導航:首頁 > 編程語言 > java讀取map

java讀取map

發布時間:2022-08-19 20:55:41

『壹』 java怎麼獲取map的key

java 獲取map中所有的key和value值

java.util.Iterator 對 collection 進行迭代的迭代器。

java.util.Iterator it = map.entrySet().iterator();
while(it.hasNext()){
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
entry.getKey() //返回對應的鍵
entry.getValue() //返回對應的值
}

以前遍歷Map key-value比較習慣的方式是先獲取Map中的所有key值,
然後根據key,依次從Map中去數據,基本方式如下:

Map<String,String> testData = new HashMap<String, String>();

Set<String> keys = testData.keySet();
for(String key :keys){
System.out.println(key+" "+testData.get(key));
}

上述其中是第一種方法,原來一直用上述方法主要是自己有點懶,有了一種方法後就覺得夠用的了,今天看源碼,發現還Map介面中還有一個Entry<K,V>的介面,對應的還有一個 Set<Map.Entry<K, V>> entrySet();方法。
也就是說其實Map中的每條key-value數據對應著一個Entry,這樣的話遍歷Map其實就是要取出每個Entry,也就有了第二種遍歷方法:

Set<Entry<String, String>> entries = testData.entrySet();
for (Entry<String, String> entry : entries) {
System.out.println(entry.getKey()+":"+entry.getValue());
}

當少量的數據時,上述兩種方法的效率是差不多的,當數據比較多時,第二種還是要比第一種快。

當然上述說的兩種遍歷針對的情況是遍歷出key-value,如果是只想遍歷key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V> values()。

『貳』 java問題 兩個main方法讀取同一個map

我猜想你的程序大概是這么寫的
Class A{
public static Map m = new HashMap();
public static void main(String[] args){
m.put(key,value);
m.put(key,value);
m.put(key,value);
}
}

Class B{
public static void main(String[] args){
A.m.get(key)
}
}

這么做肯定是不行的
每個java程序只能有一個main方法
也就是你在執行B類中的main方法時
A類的main方法是從來沒有被調用過的
其實你可以改造下A類中的初始化方法
Class A{
public static Map m = new HashMap();
static {
m.put(key,value);
m.put(key,value);
m.put(key,value);
}
}

這樣在B類中就可以使用了
想知道為什麼查詢下「靜態塊」
另、如果你A類中Map不是初始化時就持有
而是寫成下面
Class A{
public static Map m = null;
public static void main(String[] args){
m = new HashMap();
m.put(key,value);
m.put(key,value);
m.put(key,value);
}
}
這樣你才會發現在B類中調用時報了一個空指針異常
你也就會發現其實A類中的main方法根本沒有執行過

『叄』 如何在java中取map中的鍵值有哪兩種方法

Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");

//第一種:普遍使用,二次取值
System.out.println("通過Map.keySet遍歷key和value:");
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
}

//第二種
System.out.println("通過Map.entrySet使用iterator遍歷key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}

//第三種:推薦,尤其是容量大時
System.out.println("通過Map.entrySet遍歷key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}

//第四種
System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}

『肆』 java高手請進,我有一個map對象,用來存儲一個數組,如何讀取這個數組呢

如果把數組的序列號當做 Map 的key ,值當做value,
那麼取相應的值可以 map.get(key);
也可以便利Map取值
如:
for(String str:map){
String s = str;
}
這里str為map里value部分

『伍』 java語言如何循環讀取Map對象內的數據

Set<Object> keySet = map.keySet();//獲取map的key值的集合,set集合
for(Object obj:keySet){//遍歷key
System.out.println("key:"+obj+",Value:"+map.get(obj));//輸出鍵與值
}

『陸』 java獲取map中key

Set<Integer> keySet = map.keySet();
for(Integer key : keySet) {
map.get(key);

}

『柒』 java中如何如何獲取map中某key值的位置

Map 介面不支持這種操作。

如果真的需要的話也沒什麼太好的辦法,比較傻的辦法:

如果你有心正經搞一個那麼我建議你重寫一下HashMap或者TreeMap,自己加一個返回index的方法。貌似TreeMap結構相對簡單一些。

『捌』 java中怎麼將一個文件讀取到map中map沒學好~求指導~

map 是以鍵值對的形式存儲數據的,用values()方法可以得到所有值的集合。然後用for語句挨個得到。

『玖』 java遍歷Map的幾種方法分析

1.先初始化一個map
public class TestMap {
public static Map<Integer, Integer> map = new HashMap<Integer, Integer>();
}
2.keySet values
如果只需要map的key或者value,用map的keySet或values方法無疑是最方便的
// KeySet 獲取key
public void testKeySet() {
for (Integer key : map.keySet()) {
System.out.println(key);
}
}
// values 獲取value
public void testValues() {
for (Integer value : map.values()) {
System.out.println(value);
}
}
3.keySet get(key)
如果需要同時獲取key和value,可以先獲取key,然後再通過map的get(key)獲取value

需要說明的是,該方法不是最優選擇,一般不推薦使用

// keySet get(key) 獲取key and value
public void testKeySetAndGetKey() {
for (Integer key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
4.entrySet
通過對map entrySet的遍歷,也可以同時拿到key和value,一般情況下,性能上要優於上一種,這一種也是最常用的遍歷方法

// entrySet 獲取key and value
public void testEntry() {
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
5.Iterator
對於上面的幾種foreach都可以用Iterator代替,其實foreach在java5中才被支持,foreach的寫法看起來更簡潔

但Iterator也有其優勢:在用foreach遍歷map時,如果改變其大小,會報錯,但如果只是刪除元素,可以使用Iterator的remove方法刪除元素

// Iterator entrySet 獲取key and value
public void testIterator() {
Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, Integer> entry = it.next();
System.out.println(entry.getKey() + ":" + entry.getValue());
// it.remove(); 刪除元素
}
}

閱讀全文

與java讀取map相關的資料

熱點內容
長上影線洗盤源碼 瀏覽:621
短線客選股公式源碼及成功率 瀏覽:28
怎樣用樂高拼解壓神器 瀏覽:297
打掃出租房解壓室 瀏覽:715
編程學什麼專業好一點 瀏覽:576
郵件伺服器是屬於什麼 瀏覽:458
麗升PDF 瀏覽:566
做app需要會什麼 瀏覽:53
linuxvsftpdrpm 瀏覽:495
sessionjava管理 瀏覽:519
servuftp命令 瀏覽:874
在什麼app上可以看到末日三問 瀏覽:771
快速解壓文件的方法是什麼 瀏覽:60
23的源碼反碼補碼 瀏覽:210
斗羅大陸斗神再臨伺服器滿了怎麼辦 瀏覽:239
付費語音問答源碼 瀏覽:118
怎麼運行伺服器上的項目html 瀏覽:229
蚌埠市鴻申特種氣體壓縮機廠 瀏覽:960
傑特康app安卓怎麼辦 瀏覽:64
中國最強的程序員 瀏覽:871