📜  Java中的Java .util.TreeMap.put() 和 putAll()

📅  最后修改于: 2022-05-13 01:55:06.256000             🧑  作者: Mango

Java中的Java .util.TreeMap.put() 和 putAll()

TreeMap 中的插入是使用 put 函数的变体处理的。 Java.util.TreeMap 中有两个put() 变体,本文都讨论了这两个变体。 1. put() :它将指定的值与映射中的指定键相关联。如果密钥已经存在,则更新它会导致更新该密钥。

Parameters:
key : The key with which the value is to be associated.
value : The value to be associated with the given key.
Return Value:
It returns the previously associated value with this key,
or null if there was no mapping for key.
Exception:
Not Available.

// Java code demonstrating the working
// of put()
import java.io.*;
import java.util.*;
public class Put {
    public static void main(String[] args)
    {
  
        // Declaring the tree map of Integer and String
        TreeMap tmp = new TreeMap();
  
        // assigning the values in the tree map
        // using put()
        tmp.put("one", 1);
        tmp.put("two", 3);
  
        // Printing initial TreeMap
        System.out.println("The initial TreeMap is : " + tmp);
  
        // Putting value at key two
        // replaces the previous value if present
        int z = tmp.put("two", 2);
  
        // checking the previous value associated with "two"
        System.out.println("The previous value with two is : " + z);
  
        // prints the complete map
        System.out.println("Updated TreeMap is : " + tmp);
    }
}

输出:

The initial TreeMap is : {one=1, two=3}
The previous value with two is : 3
Updated TreeMap is : {one=1, two=2}

2. putAll() :它将所有映射从指定映射复制到给定映射,并在重复键的情况下覆盖。

Parameters:
map : The mappings to be stored.
Return Value:
Not Available.
Exception:
NullPointerException : Thrown if specified map is null,
specified map contains a null key.

// Java code to demonstrate the working
// of putAll()
import java.io.*;
import java.util.*;
public class putAll {
    public static void main(String[] args)
    {
  
        // Declaring the tree maps of Integer and String
        TreeMap tmp1 = new TreeMap();
        TreeMap tmp2 = new TreeMap();
  
        // assigning the values in the tree map
        // using put()
        tmp1.put("two", 3);
        tmp1.put("one", 1);
  
        // assigning in 2nd TreeMap
        tmp2.put("three", 3);
        tmp2.put("two", 2);
  
        System.out.println("First treemap values are : " + tmp1);
  
        // use of putAll()
        // Putting 2nd map in 1st map
        tmp1.putAll(tmp2);
  
        System.out.println("Values after modifying 1st treemap : " + tmp1);
    }
}

输出:

First treemap values are : {one=1, two=3}
Values after modifying 1st treemap : {one=1, three=3, two=2}

例外

空指针异常:如果映射包含空键或在 putAll() 中为空,则发生。

// Java code to demonstrate the Exception
// of putAll()
import java.io.*;
import java.util.*;
public class putAll {
    public static void main(String[] args)
    {
  
        // Declaring the tree maps of Integer and String
        TreeMap tmp1 = new TreeMap();
        TreeMap tmp2 = new TreeMap();
  
        // assigning the values in the tree map
        // using put()
        tmp1.put("two", 3);
        tmp1.put("one", 1);
  
        // assigning in 2nd TreeMap
        tmp2.put("three", 3);
        tmp2.put(null, 2);
  
        System.out.println("First treemap values are : " + tmp1);
  
        // use of putAll()
        // Putting 2nd map in 1st map
        tmp1.putAll(tmp2);
  
        System.out.println("Values after modifying 1st treemap : " + tmp1);
    }
}

运行时错误:

Exception in thread "main" java.lang.NullPointerException
    at java.util.TreeMap.put(TreeMap.java:563)
    at putAll.main(putAll.java:21)

实际应用:此函数具有存储值并在需要时更新它们。这种功能主要在目录和字典或记录中有用。下面的小代码解释了组合数据库以获得游戏中的更新分数。

// Java code to demonstrate the Application
// of putAll()
import java.io.*;
import java.util.*;
public class putAllAppli {
    public static void main(String[] args)
    {
  
        // Declaring the tree maps of Integer and String
        TreeMap Score1 = new TreeMap();
        TreeMap Score2 = new TreeMap();
  
        // Assigning Scores at Drinks break
        Score1.put("Sachin", 40);
        Score1.put("Rahul", 32);
        Score1.put("Dhoni", 68);
  
        System.out.println("The scores till Drinks break are : " + Score1);
  
        // Assigning Scores at Lunch
        Score2.put("Rahul", 67);
        Score2.put("Dhoni", 102);
        Score2.put("Raina", 10);
  
        System.out.println("The scores at Lunch : " + Score2);
  
        // use of putAll()
        // Getting net score board
        Score1.putAll(Score2);
  
        System.out.println("Net scorecard is : " + Score1);
    }
}

输出:

The scores till Drinks break are : {Dhoni=68, Rahul=32, Sachin=40}
The scores at Lunch : {Dhoni=102, Rahul=67, Raina=10}
Net scorecard is : {Dhoni=102, Rahul=67, Raina=10, Sachin=40}