当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。