小编KtC*_*KtC的帖子

在java binarySearch中使用多个比较器

如何在java中的二进制搜索中使用多个比较器...我正在尝试对按名称和起始编号排序的参赛者列表进行排序.

问题是,如果两个参赛者具有相同的名称,我会得到一个IndexOutOfBoundsException,所以我想使用起始编号(这是唯一的)进行二级二进制搜索,但仍然使用名称保持正确的顺序.

这就是我现在所拥有的:

static void add(Contestant c){
    int pos = Collections.binarySearch(byName, c, new ConNameCmp());
    if (pos >= 0){
        pos = Collections.binarySearch(byName, c, new ConStartCmp());
    }
    byName.add(-pos-1, c);
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
1637
查看次数

标签 统计

java ×1