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}