我的系统中有很多规则。在提交请求时,我必须选择一个请求或将规则选为无。
所以我已经为每条规则添加了权重年龄,但问题是如果请求没有匹配(一个属性),则不需要考虑该规则。 (我已经为该规则提供了最高分。)如何从我的TreeSet
中删除它?
目前这是我的比较方法:
private Flow selectExact(final FlowSelector flowSelector) {
TreeSet<Flow> sortedFlows = new TreeSet<Flow>(new Comparator<Flow>() {
@Override
public int compare(Flow o1, Flow o2)
{
return o1.calculateWt(flowSelector) - o2.calculateWt(flowSelector);
}
}
);
每个属性的 calculateWt
方法权重年龄。我想根据此TreeSet
方法对calculateWt
进行排序,但不应包含条目,即calculateWt > 100
。使用TreeSet
排序的calculateWt
不大于100。
答案 0 :(得分:0)
也许我没有正确理解这个问题,但通常我们需要比较器来对树中的值进行排序。如果要删除树中的某些条目 - 请在外部代码中手动删除它。
Set myTree = new TreeSet();
// add some values here
// then compare new, second rule weight with others,
// maybe you need to do it in a loop
if (compare(first, second) > 100) {
myTree.remove(second);
}
像这样。