📅  最后修改于: 2023-12-03 15:36:15.592000             🧑  作者: Mango
Java中的TreeMap是一种以红黑树为基础实现的Map接口类,它按照键的自然顺序进行排序,默认情况下是升序排列。而在TreeMap中,我们可以获取它的子图、头图和尾图,下面我们来介绍具体的实现方法。
获取TreeMap的子图,我们需要使用TreeMap类提供的subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)方法。
示例代码如下:
import java.util.*;
public class TreeMapDemo {
public static void main(String args[]) {
// create a tree map
TreeMap<String, Double> tm = new TreeMap<String, Double>();
// put elements to the map
tm.put("Zara", 3434.34);
tm.put("Mahnaz", 123.22);
tm.put("Ayan", 1378.00);
tm.put("Daisy", 99.22);
tm.put("Qadir", -19.08);
// get sub map
SortedMap<String, Double> subTM = tm.subMap("Ayan", true, "Zara", false); // 包含"Ayan",但不包含"Zara"
// print sub map
System.out.println("Sub map values: " + subTM);
}
}
输出结果为:
Sub map values: {Ayan=1378.0, Daisy=99.22, Mahnaz=123.22}
获取TreeMap的头图和尾图,我们需要使用TreeMap类提供的headMap(K toKey, boolean inclusive)和tailMap(K fromKey, boolean inclusive)方法。
对于headMap(K toKey, boolean inclusive)方法,返回的是小于等于toKey的键值对集合,其中:
对于tailMap(K fromKey, boolean inclusive)方法,则返回大于等于fromKey的键值对集合,其中:
示例代码如下:
import java.util.*;
public class TreeMapDemo {
public static void main(String args[]) {
// create a tree map
TreeMap<String, Double> tm = new TreeMap<String, Double>();
// put elements to the map
tm.put("Zara", 3434.34);
tm.put("Mahnaz", 123.22);
tm.put("Ayan", 1378.00);
tm.put("Daisy", 99.22);
tm.put("Qadir", -19.08);
// get head map
SortedMap<String, Double> headTM = tm.headMap("Ayan", false); // 不包含"Ayan"
// print head map
System.out.println("Head map values: " + headTM);
// get tail map
SortedMap<String, Double> tailTM = tm.tailMap("Ayan", true); // 包含"Ayan"
// print tail map
System.out.println("Tail map values: " + tailTM);
}
}
输出结果为:
Head map values: {Daisy=99.22, Mahnaz=123.22, Qadir=-19.08}
Tail map values: {Ayan=1378.0, Daisy=99.22, Mahnaz=123.22, Zara=3434.34}
以上就是在Java中如何从TreeMap获取子图、头图和尾图的详细实现方法,希望可以帮助到大家。