📜  从Java TreeMap 获取子图、头图和尾图(1)

📅  最后修改于: 2023-12-03 15:36:15.592000             🧑  作者: Mango

从Java TreeMap 获取子图、头图和尾图

Java中的TreeMap是一种以红黑树为基础实现的Map接口类,它按照键的自然顺序进行排序,默认情况下是升序排列。而在TreeMap中,我们可以获取它的子图、头图和尾图,下面我们来介绍具体的实现方法。

获取子图

获取TreeMap的子图,我们需要使用TreeMap类提供的subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)方法。

  • fromKey: 返回的子图中的第一个键必须大于等于fromKey。
  • fromInclusive:是否包含fromKey键,为true则包含,反之不包含。
  • toKey:返回的子图中的最后一个键必须小于等于toKey。
  • toInclusive:是否包含toKey键,为true则包含,反之不包含。

示例代码如下:

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的键值对集合,其中:

  • toKey:返回的键值对集合中的最后一个键必须小于等于toKey。
  • inclusive:是否包含toKey键,为true则包含,反之不包含。

对于tailMap(K fromKey, boolean inclusive)方法,则返回大于等于fromKey的键值对集合,其中:

  • fromKey:返回的键值对集合中的第一个键必须大于等于fromKey。
  • inclusive:是否包含fromKey键,为true则包含,反之不包含。

示例代码如下:

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获取子图、头图和尾图的详细实现方法,希望可以帮助到大家。