java中TreeMap的应用

TreeMap引用类

import java.util.TreeSet;

新建一个TreeMap

TreeMap<Integer, String> temp = new TreeMap<>();

其中,TreeMap temp是一个红黑树,
它的每个节点按照Key值(Integer的位置)排序;
它的每个节点可以进行储存信息,储存在value中(String的位置)。

TreeMap常用的函数功能

void put (Integer key, String value):将一个节点放入树中,并按其Key值重新整理红黑树
                                       //注意:如果Key值相等,新添加的节点则会覆盖掉原来的节点
Object get(Object key):它检索key指定的映射值value,如果此映射不包含键的映射,则返回null。
void navigableKeySet() : 按Key值顺序遍历整个红黑树
void clear():它从红黑树中删除所有键值对。
void size():返回此映射中存在的键值对的数量。
void isEmpty():如果此映射不包含键 - 值映射,则返回true。
boolean containsKey(Object key):'true'如果地图中存在指定的键,则返回。
bject firstKey():它返回树映射中当前的第一个(最少)键。
Object lastKey():它返回树映射中当前的最后一个(最大)键。
Object ceilingKey(Object key):返回大于或等于给定键的最小键,如果没有这样的键则返回null。
Object higherKey(Object key):返回严格大于指定键的最小键。

使用案例

public class TreeMapjava {
   /*
   *@para : 判断事件(节点)从start到end,一共互相冲突的事件数最大值
   */
   static TreeMap<Integer, Integer> temp = new TreeMap();
   public static int managenent(int start, int end) {
   temp.put(start, end);//添加节点
   int active =0,ans=0;
  
  for(int c : temp.navigableKeySet()) //按Key值顺序遍历整个红黑树{
   active = 1;
   for(int d : temp.navigableKeySet()) {
       if(d>c && ( (d<temp.get(c) && temp.get(d)>temp.get(c)) || (d<c && temp.get(d)>c) ) ) )
       {
        active++;
       }
   }
   if (active >= ans)
    ans = active;
  }
  return ans;
  }

``可添加以下语句

`System.out.println("Initial Mappings are: " + temp);`

使控制台输出整个树:

若start=8,end=10

输出temp为:【8,10】

若再添加start=16,end=22

输出temp为:【【8,10】,【16,22】】

若再添加start=16,end=23

输出temp为:【【8,10】,【16,23】】//覆盖掉原先节点

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值