Java TreeMap putAll() 方法



描述

Java TreeMap putAll(Map<? extends K,? extends V> map) 方法用于将指定映射中的所有映射复制到此映射。这些映射将替换此映射中当前在指定映射中的任何键的任何映射。

声明

以下是 java.util.TreeMap.putAll() 方法的声明。

public void putAll(Map<? extends K,? extends V> map)

参数

map − 这是要存储在此映射中的映射。

返回值

异常

  • ClassCastException − 如果指定映射中键或值的类阻止将其存储在此映射中,则抛出此异常。

  • NullPointerException − 如果指定的映射为空,或者指定的映射包含空键并且此映射不允许空键,则抛出此异常。

向 Integer,Integer 对的 TreeMap 添加多个键值对示例

以下示例演示了 Java TreeMap putAll() 方法的使用,以在单个语句中向此映射中添加/更新多个键值映射。我们创建了两个 Integer,Integer 对的 TreeMap 对象。然后使用 put() 方法向两个映射添加一些条目,打印第一个映射,然后使用 putAll() 方法将第二个映射的所有条目添加到第一个映射,并打印映射以验证更改。

package com.tutorialspoint;

import java.util.TreeMap;

public class TreeMapDemo {
   public static void main(String[] args) {

      // creating tree maps 
      TreeMap<Integer, Integer> treemap = new TreeMap<>();
      TreeMap<Integer, Integer> treemap_putall = new TreeMap<>();

      // populating tree map
      treemap.put(2, 2);
      treemap.put(1, 1);
      treemap.put(3, 3);
      treemap.put(6, 6);
      treemap.put(5, 5);

      treemap_putall.put(1, 111); 
      treemap_putall.put(2, 222);
      treemap_putall.put(7, 777);      

      System.out.println("Value before modification: "+ treemap);

      // Putting 2nd map in 1st map
      treemap.putAll(treemap_putall);

      System.out.println("Value after modification: "+ treemap);
   }     
}

输出

让我们编译并运行上述程序,这将产生以下结果。

Value before modification: {1=1, 2=2, 3=3, 5=5, 6=6}
Value after modification: {1=111, 2=222, 3=3, 5=5, 6=6, 7=777}

向 Integer,String 对的 TreeMap 添加多个键值对示例

以下示例演示了 Java TreeMap putAll() 方法的使用,以在单个语句中向此映射中添加/更新多个键值映射。我们创建了两个 Integer,String 对的 TreeMap 对象。然后使用 put() 方法向两个映射添加一些条目,打印第一个映射,然后使用 putAll() 方法将第二个映射的所有条目添加到第一个映射,并打印映射以验证更改。

package com.tutorialspoint;

import java.util.TreeMap;

public class TreeMapDemo {
   public static void main(String[] args) {

      // creating tree maps 
      TreeMap<Integer, String> treemap = new TreeMap<>();
      TreeMap<Integer, String> treemap_putall = new TreeMap<>();

      // populating tree map
      treemap.put(2, "two");
      treemap.put(1, "one");
      treemap.put(3, "three");
      treemap.put(6, "six");
      treemap.put(5, "five");

      treemap_putall.put(1, "111"); 
      treemap_putall.put(2, "222");
      treemap_putall.put(7, "777");      

      System.out.println("Value before modification: "+ treemap);

      // Putting 2nd map in 1st map
      treemap.putAll(treemap_putall);

      System.out.println("Value after modification: "+ treemap);
   }     
}

输出

让我们编译并运行上述程序,这将产生以下结果。

Value before modification: {1=one, 2=two, 3=three, 5=five, 6=six}
Value after modification: {1=111, 2=222, 3=three, 5=five, 6=six, 7=777}

向 Integer,Object 对的 TreeMap 添加多个键值对示例

以下示例演示了 Java TreeMap putAll() 方法的使用,以在单个语句中向此映射中添加/更新多个键值映射。我们创建了两个 Integer,Student 对的 TreeMap 对象。然后使用 put() 方法向两个映射添加一些条目,打印第一个映射,然后使用 putAll() 方法将第二个映射的所有条目添加到第一个映射,并打印映射以验证更改。

package com.tutorialspoint;

import java.util.TreeMap;

public class TreeMapDemo {
   public static void main(String[] args) {

      // creating tree maps 
      TreeMap<Integer, Student> treemap = new TreeMap<>();
      TreeMap<Integer, Student> treemap_putall = new TreeMap<>();

      // populating tree map
      treemap.put(2, new Student(2, "Robert"));
      treemap.put(1, new Student(1, "Julie"));  
      treemap.put(3, new Student(3, "Adam"));
      treemap.put(6, new Student(6, "Julia"));
      treemap.put(5, new Student(5, "Tom"));

      treemap_putall.put(1, new Student(111, "Julie")); 
      treemap_putall.put(2, new Student(222, "Robert"));
      treemap_putall.put(7, new Student(777, "Jose"));      

      System.out.println("Value before modification: "+ treemap);

      // Putting 2nd map in 1st map
      treemap.putAll(treemap_putall);

      System.out.println("Value after modification: "+ treemap);
   }     
}
class Student {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   @Override
   public boolean equals(Object obj) {
      if(obj == null) return false;
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果。

Value before modification: {1=[ 1, Julie ], 2=[ 2, Robert ], 3=[ 3, Adam ], 5=[ 5, Tom ], 6=[ 6, Julia ]}
Value after modification: {1=[ 111, Julie ], 2=[ 222, Robert ], 3=[ 3, Adam ], 5=[ 5, Tom ], 6=[ 6, Julia ], 7=[ 777, Jose ]}
java_util_treemap.htm
广告