在本指南中,我们通过实例看到TreeMap
类的实现。
TreeMap
是一个基于红黑树的NavigableMap
实现。TreeMap
中的元素总是根据键的自然排序,或者根据你在创建TreeMap
时提供的自定义比较器进行排序。
TreeMap
类TreeMap
。例子TreeMap
排序顺序示例(升序)TreeMap
使用自定义比较器(降序)。TreeMap
的元素。TreeMap
类概述Java TreeMap
类通过使用Tree来实现Map
接口。它提供了一种有效的手段,以排序的方式存储键/值对。
关于JavaTreeMap
类的重要内容是。
TreeMap
包含基于键的值。它实现了NavigableMap
接口并扩展了AbstractMap
类。null
键,但可以有多个空值。TreeMap
例子// Creating a TreeMap
TreeMap<String, String> fileExtensions = new TreeMap<>();
// Adding new key-value pairs to a TreeMap
fileExtensions.put("python", ".py");
fileExtensions.put("c++", ".cpp");
fileExtensions.put("kotlin", ".kt");
fileExtensions.put("golang", ".go");
fileExtensions.put("java", ".java");
// Printing the TreeMap (Output will be sorted based on keys)
System.out.println(fileExtensions);
输出。
{c++=.cpp, golang=.go, java=.java, kotlin=.kt, python=.py}
TreeMap
排序顺序示例(升序)在这个例子中,元素是按自然顺序排序的。
public class MapInterfaceTreeSetImpl {
public static void main(String[] args) {
treeMapDemo();
}
// maintain keys in ascending order.
private static void treeMapDemo() {
// Constructs a new, empty tree map, using the natural ordering of its
// keys
Map<String, String> treeMap = new TreeMap<>();
treeMap.put("key1", "value1");
treeMap.put("key3", "value3");
treeMap.put("key2", "value2");
treeMap.put("key0", "value0");
// loop linkedHahMap using java 8 forEach method
treeMap.forEach((k, v) -> {
System.out.println(k);
System.out.println(v);
});
// loop linkedHahMap using before java 8 forEach method
for (Entry pair : treeMap.entrySet()) {
System.out.println(pair.getKey());
System.out.println(pair.getValue());
}
}
}
输出:
key0
value0
key1
value1
key2
value2
key3
value3
TreeMap
与自定义的Comparator
(降序排列)// Creating a TreeMap with a Custom comparator (Descending order)
SortedMap<String, Integer> numberWordMapping = new TreeMap<>(Comparator.reverseOrder());
// Adding new key-value pairs to a TreeMap
numberWordMapping.put("one", 1);
numberWordMapping.put("two", 2);
numberWordMapping.put("three", 3);
numberWordMapping.put("five", 5);
numberWordMapping.put("four", 4);
// Printing the TreeMap (The keys will be sorted based on the supplied
// comparator)
System.out.println(numberWordMapping);
输出:
{two=2, three=3, one=1, four=4, five=5}
请注意,键值是按降序排序的。
TreeMap
的元素求一个TreeMap
的大小。
TreeMap<Integer, String> users = new TreeMap<>();
users.put(1, "Ramesh");
// Finding the size of a TreeMap
System.out.println("Total number of users: " + users.size());
检查TreeMap
中是否存在一个给定的键。
TreeMap<Integer, String> users = new TreeMap<>();
users.put(1003, "A");
users.put(1001, "B");
users.put(1002, "C");
users.put(1004, "D");
// Check if a given key exists in a TreeMap
Integer id = 1004;
if(users.containsKey(id)) {
// Get the value associated with a given key in a TreeMap
String name = users.get(id);
System.out.println("user with id " + id + " : " + name);
} else {
System.out.println("user does not exist with id : " + id);
}
检索TreeMap
中的第一个元素。
TreeMap<Integer, String> users = new TreeMap<>();
users.put(1003, "A");
users.put(1001, "B");
users.put(1002, "C");
users.put(1004, "D");
// Find the first entry
System.out.println("First entry in users map : " + users.firstEntry());
检索TreeMap
中的最后一个元素。
TreeMap<Integer, String> users = new TreeMap<>();
users.put(1003, "A");
users.put(1001, "B");
users.put(1002, "C");
users.put(1004, "D");
// Find the last entry
System.out.println("Last entry in users map : " + users.lastEntry());
检索键值刚好比给定键值低的元素。
TreeMap<Integer, String> users = new TreeMap<>();
users.put(1003, "A");
users.put(1001, "B");
users.put(1002, "C");
users.put(1004, "D");
// Find the entry whose key is just less than the given key
Map.Entry<Integer, String> users = users.lowerEntry(1002);
检索键值刚好比给定键值高的元素。
TreeMap<Integer, String> users = new TreeMap<>();
users.put(1003, "A");
users.put(1001, "B");
users.put(1002, "C");
users.put(1004, "D");
// Find the entry whose key is just higher than the given key
Map.Entry<Integer, String> usersEx = users.higherEntry(1002);
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2018/07/guide-to-treemap-class.html
内容来源于网络,如有侵权,请联系作者删除!