用 Java 将 HashMap 转换为 TreeMap 的程序
原文:https://www . geesforgeks . org/program-to-convert-hashmap-to-tree map-in-Java/
HashMap 是 Java 1.2 以来 Java 集合的一部分。它提供了以(键、值)对存储数据的 Java Map 接口的基本实现。要访问 HashMap 中的值,必须知道它的键。哈希映射被称为哈希映射,因为它使用哈希技术来存储数据。
Java 中的树图和抽象类一起用来实现地图接口和导航地图。地图根据其关键字的自然顺序进行排序,或者由地图创建时提供的比较器进行排序,具体取决于使用的构造函数。这被证明是排序和存储键值对的有效方式。
下面是在 Java 中将 HashMap 转换成 TreeMap 的方法,这样得到的 TreeMap 应该包含 HashMap 的所有映射,按照它们的键的自然顺序排序。
示例:
输入:HashMap:{ 1 =极客,2 =伪造者,3 =计算机门户} T3】输出:树形图:{ 1 =极客,2 =伪造者,3 =计算机门户}
输入:哈希表:{1=1,2=2,3=3} 输出:树形图:{1=1,2=2,3=3}
以下是在 Java 中将 HashMap 转换为 TreeMap 的方法:
1。在 Java 8 中:这个方法包括将 HashMap 转换为 Stream,并使用 Stream.collect()方法收集 TreeMap 中的流元素,该方法接受一个收集器。
算法:
- 获取要转换的 HashMap。
- 从哈希表中获取条目
- 将地图条目转换为流
- 使用收集器,收集条目并将其转换为树形图
- 现在收集树形图
- 返回形成的树形图
程序:
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to convert
// HashMap to TreeMap in Java 8
import java.util.*;
import java.util.stream.*;
class GFG {
// Generic function to construct a new
// TreeMap from HashMap
public static <K, V> Map<K, V> convertToTreeMap(Map<K, V> hashMap)
{
Map<K, V>
treeMap = hashMap
// Get the entries from the hashMap
.entrySet()
// Convert the map into stream
.stream()
// Now collect the returned TreeMap
.collect(
Collectors
// Using Collectors, collect the entries
// and convert it into TreeMap
.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue,
newValue)
-> newValue,
TreeMap::new));
// Return the TreeMap
return treeMap;
}
public static void main(String args[])
{
// Create a HashMap
Map<String, String> hashMap = new HashMap<>();
// Add entries to the HashMap
hashMap.put("1", "Geeks");
hashMap.put("2", "forGeeks");
hashMap.put("3", "A computer Portal");
// Print the HashMap
System.out.println("HashMap: " + hashMap);
// construct a new TreeMap from HashMap
Map<String, String> treeMap = convertToTreeMap(hashMap);
// Print the TreeMap
System.out.println("TreeMap: " + treeMap);
}
}
输出:
HashMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
TreeMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
2。使用纯 Java :在这个方法中,要么将 HashMap 实例传递给 TreeMap 构造函数,要么传递给 putAll()方法。这将直接从哈希表创建树形图。
算法:
- 获取要转换的 HashMap。
- 创建新的树形图
- 将 hashMap 传递给 treeMap 的 putAll()方法
- 返回形成的树形图
程序:
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to convert
// HashMap to TreeMap in Java 8
import java.util.*;
import java.util.stream.*;
class GFG {
// Generic function to construct a
// new TreeMap from HashMap
public static <K, V> Map<K, V> convertToTreeMap(Map<K, V> hashMap)
{
// Create a new TreeMap
Map<K, V> treeMap = new TreeMap<>();
// Pass the hashMap to putAll() method
treeMap.putAll(hashMap);
// Return the TreeMap
return treeMap;
}
public static void main(String args[])
{
// Create a HashMap
Map<String, String> hashMap = new HashMap<>();
// Add entries to the HashMap
hashMap.put("1", "Geeks");
hashMap.put("2", "forGeeks");
hashMap.put("3", "A computer Portal");
// Print the HashMap
System.out.println("HashMap: " + hashMap);
// construct a new TreeMap from HashMap
Map<String, String> treeMap = convertToTreeMap(hashMap);
// Print the TreeMap
System.out.println("TreeMap: " + treeMap);
}
}
输出:
HashMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
TreeMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
3。使用谷歌的番石榴库:番石榴还提供了一个树形图实现,可以用来创建一个空的树形图实例。
算法:
- 获取要转换的 HashMap。
- 使用番石榴库的 Maps.newTreeMap()创建新的树图
- 将 hashMap 传递给 treeMap 的 putAll()方法
- 返回形成的树形图
程序:
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to convert
// HashMap to TreeMap in Java 8
import com.google.common.collect.*;
import java.util.*;
import java.util.stream.*;
class GFG {
// Generic function to construct a
// new TreeMap from HashMap
public static <K extends Comparable, V> Map<K, V>
convertToTreeMap(Map<K, V> hashMap)
{
// Create a new TreeMap
Map<K, V> treeMap = Maps.newTreeMap();
// Pass the hashMap to putAll() method
treeMap.putAll(hashMap);
// Return the TreeMap
return treeMap;
}
public static void main(String args[])
{
// Create a HashMap
Map<String, String> hashMap = new HashMap<>();
// Add entries to the HashMap
hashMap.put("1", "Geeks");
hashMap.put("2", "forGeeks");
hashMap.put("3", "A computer Portal");
// Print the HashMap
System.out.println("HashMap: " + hashMap);
// construct a new TreeMap from HashMap
Map<String, String> treeMap = convertToTreeMap(hashMap);
// Print the TreeMap
System.out.println("TreeMap: " + treeMap);
}
}
输出:
HashMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
TreeMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
4。不兼容类型之间的转换:如果所需的树形图与 HashMap 的类型不同,可以使用该方法。在这种情况下,转换需要手动完成。
算法:
- 获取要转换的 HashMap。
- 创建新的树形图
- 对于哈希表的每个条目:
- 通过转换将键和值转换为所需的类型
- 通过 treeMap 的 put()方法插入转换后的对
- 返回形成的树形图
程序:
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to convert
// HashMap to TreeMap in Java 8
import java.util.*;
import java.util.stream.*;
class GFG {
// Function to construct a new TreeMap from HashMap
public static Map<Integer, String>
convertToTreeMap(Map<String, String> hashMap)
{
// Create a new TreeMap
Map<Integer, String> treeMap = new TreeMap<>();
// Convert the HashMap to TreeMap manually
for (Map.Entry<String, String> e : hashMap.entrySet()) {
treeMap.put(Integer.parseInt(e.getKey()), e.getValue());
}
// Return the TreeMap
return treeMap;
}
public static void main(String args[])
{
// Create a HashMap
Map<String, String> hashMap = new HashMap<>();
// Add entries to the HashMap
hashMap.put("1", "Geeks");
hashMap.put("2", "forGeeks");
hashMap.put("3", "A computer Portal");
// Print the HashMap
System.out.println("HashMap: " + hashMap);
// construct a new TreeMap<Integer, String>
// from HashMap<String, String>
Map<Integer, String> treeMap = convertToTreeMap(hashMap);
// Print the TreeMap
System.out.println("TreeMap: " + treeMap);
}
}
输出:
HashMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
TreeMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
版权属于:月萌API www.moonapi.com,转载请注明出处