java Map及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方法。
由以上可以得出,遍歷Map的常用方法:
1. Map map = new HashMap();
Irerator iterator = map.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry entry = iterator.next();
Object key = entry.getKey();
//
}
2.Map map = new HashMap();
Set keySet= map.keySet();
Irerator iterator = keySet.iterator;
while(iterator.hasNext()) {
Object key = iterator.next();
Object value = map.get(key);
//
}
另外,還有一種遍歷方法是,單純的遍歷value值,Map有一個values方法,返回的是value的Collection集合。通過遍歷collection也可以遍歷value,如
Map map = new HashMap();
Collection c = map.values();
Iterator iterator = c.iterator();
while(iterator.hasNext()) {
Object value = iterator.next();
}
你是否已經對每次從Map中取得關鍵字然後再取得相應的值感覺厭倦?使用Map.Entry類,你可以得到在同一時間得到所有的資訊。標準的Map訪問方法如下:
Set keys = map.keySet( );
if(keys != null) {
Iterator iterator = keys.iterator( );
while(iterator.hasNext( )) {
Object key = iterator.next( );
Object value = map.get(key);
;....
;}
}
然後,這個方法有一個問題。從Map中取得關鍵字之後,我們必須每次重複返回到Map中取得相對的值,這是很繁瑣和費時的。
幸運的是,這裡有一個更加簡單的途徑。Map類提供了一個稱為entrySet()的方法,這個方法返回一個Map.Entry例項化後的物件集。接著,Map.Entry類提供了一個getKey()方法和一個getValue()方法,因此,上面的程式碼可以被組織得更符合邏輯。舉例如下:
Set entries = map.entrySet( );
if(entries != null) {
Iterator iterator = entries.iterator( );
while(iterator.hasNext( )) {
Map.Entry entry =iterator.next( );
Object key = entry.getKey( );
Object value = entry.getValue();
;....
}
}
儘管增加了一行程式碼,我們卻省略了許多對Map不必要的“get”呼叫。同時,提供給開發人員一個同時保持了關鍵字和其對應的值的類。Map.Entry同時也提供了一個setValue()方法,程式設計師可以使用它修改map裡面的值。
相關文章
- 詳解java的Collection和MapJava
- JAVA集合詳解(Collection和Map介面)Java
- 詳解Java 容器(第④篇)——容器原始碼分析 - MapJava原始碼
- Java map 詳解 - 用法、遍歷、排序、常用API等Java排序API
- JavaScript Source Map 詳解JavaScript
- 詳解map、multimap、unordered_map、unordered_multimap
- 詳解Map.merge()
- JavaScript中 Map 物件詳解JavaScript物件
- STL中map用法詳解
- 詳解Java 容器(完結篇)——詳解容器的設計模式、List、Map、併發容器Java設計模式
- 詳解object detection中的mAPObject
- JavaScript --- Map集合結構詳解JavaScript
- JavaScript — Map集合結構詳解JavaScript
- Java垃圾回收機制詳解及效能最佳化詳解。Java
- js迴圈(for/for in/forEach/map/for of)詳解JS
- Java集合中List,Set以及Map等集合體系詳解(史上最全)Java
- Java Map遍歷方式方式及效能測試Java
- java mapJava
- JAVA 記憶體洩露詳解(原因、例子及解決)Java記憶體洩露
- Java中Lambda表示式基礎及使用詳解Java
- Java列舉型別enum的詳解及使用Java型別
- Java語言class類用法及泛化(詳解)Java
- C++中map的使用詳解說明C++
- es6 map、foreach、reduce、 filter 詳解Filter
- Java 中的map - The Map Interface.Java
- 通俗易懂詳解Java代理及程式碼實戰Java
- Java註解詳解Java
- Java 註解詳解Java
- ajax詳解及例子
- java反射詳解Java反射
- Java Stream 詳解Java
- Java 反射詳解Java反射
- 【Java】JDBC詳解JavaJDBC
- Java SPI詳解Java
- 詳解 Java NIOJava
- Java鎖詳解Java
- java CountDownLatch 詳解JavaCountDownLatch
- Java RMI詳解Java