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】】//覆盖掉原先节点