如何在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 ×1