當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Map.Entry用法及代碼示例


Java中的Map.Entry接口提供了某些方法來訪問Map中的條目。通過訪問Map的條目,我們可以輕鬆地操縱它們。 Map.Entry 是一個泛型,在 java.util 包中定義。

聲明:

Interface Map.Entry
k -> Key
V -> Value

方法:

  1. 等於(對象 o)- 它將對象(調用對象)與對象 o 進行比較以確定是否相等。
    Syntax :
    boolean equals(Object o)
    Parameters :
    o -> Object to which we want to compare
    返回:
    true: if both objects are equals
    false: otherwise
    
  2. KgetKey()- 返回相應Map條目的鍵。
    Syntax :
    K getKey()
    Parameters :
    -------------
    返回:
    K -> Returns the corresponding Key of a entry on which it is invoked
    

    例外 -

    • IllegalStateException當條目已從Map中刪除時拋出。
  3. V getValue()- 返回相應映射條目的值。
    Syntax :
    V getValue()
    Parameters :
    -------------
    返回:
    V -> Returns the corresponding value of a entry on which it is invoked
    
  4. int hashcode()- 返回相應映射條目的哈希碼。
    Syntax :
    int hashcode()
    Parameters :
    -------------
    返回:
    int -> Returns the hash-code of entry on which it is invoked
    
  5. V設定值(V v)- 設置指定值v的map的值
    V setValue(V v)
    Parameters :
    v -> Value which was earlier stored in the entry on which it is invoked
    返回:
    int -> Returns the hash-code of a entry on which it is invoked

    異常:

    • ClassCastException如果值 ‘v’ 的類不是正確的映射類型,則會拋出該異常。
    • NullPointerException如果‘null’存儲在‘v’中,並且map不支持‘null’,則會拋出該錯誤。
    • UnsupportedOperationException如果我們無法操作Map或者Map不支持 put 操作,則會拋出該異常。
    • IllegalArgumetException如果參數有問題,即 v
    • IllegalStateException當條目已從Map中刪除時拋出

設置<Map.Entry> entrySet() -返回整個Map的集合視圖。
注意:這不是 Map.entry 接口的方法,但在這裏討論它是因為該方法在使用 Map.Entry 接口時很有用。

Set<Map.Entry> entrySet() 
Parameters :
---------------
返回:
Set<Map.Entry> ->: Returns a Set containing the Map.Entry values

下麵的程序演示了 Map.Entry 的工作原理:


// Java Program to demonstrate the 
// methods of Map.Entry  
import java.util.LinkedHashMap; 
import java.util.Map; 
import java.util.Set; 
  
public class GFG  
{ 
    public static void main(String[] args)  
    { 
        // Create a LinkedHashMap 
        LinkedHashMap<String,Integer> m =  
                new LinkedHashMap<String, Integer>(); 
          
        m.put("1 - Bedroom" , 25000); 
        m.put("2 - Bedroom" , 50000); 
        m.put("3 - Bedroom" , 75000); 
        m.put("1 - Bedroom - hall", 65000); 
        m.put("2 - Bedroom - hall", 85000); 
        m.put("3 - Bedroom - hall", 105000); 
          
        // Using entrySet() to get the entry's of the map 
        Set<Map.Entry<String,Integer>> s = m.entrySet(); 
          
        for (Map.Entry<String, Integer> it: s) 
        { 
            // Using the getKey to get key of the it element 
            // Using the getValue to get value of the it element 
            System.out.println("Before change of value = " +  
                       it.getKey() + "   " +  it.getValue()); 
              
            // Changing the value of 1 - Bedroom. 
            double getRandom = Math.random() * 100000; 
            int getRoundoff = (int) Math.round(getRandom); 
                  
            // Using setValue to change the value of the 
            // map element 
            it.setValue(getRoundoff); 
              
            System.out.println("After change of value = " +  
                       it.getKey() + "   " + it.getValue()); 
        } 
    } 
} 

輸出:

Before change of value = 1 - Bedroom   25000
After change of value = 1 - Bedroom   59475
Before change of value = 2 - Bedroom   50000
After change of value = 2 - Bedroom   51650
Before change of value = 3 - Bedroom   75000
After change of value = 3 - Bedroom   95200
Before change of value = 1 - Bedroom - hall   65000
After change of value = 1 - Bedroom - hall   74112
Before change of value = 2 - Bedroom - hall   85000
After change of value = 2 - Bedroom - hall   41490
Before change of value = 3 - Bedroom - hall   105000
After change of value = 3 - Bedroom - hall   10902


相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Map.Entry interface in Java with example。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。