我有两个相同大小的列表:List<A>listA
,List<B>listB
,它们彼此完全独立。
我想根据listB
中元素的移动方式对listA
进行排序。
假设两个列表之间存在一个假想的连接。
例如:
listA = [a,b,c,d,e]
| | | | |
listB = [j,g,h,k,i]
如果listB的比较器按字典顺序对它进行排序,则listA应该是b,c,e,a,d
listA = [b,c,e,a,d]
| | | | |
listB = [g,h,i,j,k]
我不想创建一个同时封装A
和B
的类。
我遇到了Ordering.explicit(),但无法弄清楚。
private static class ComparatorB implements Comparator<B> {
@Override
public int compare(B left, B right) {
}
}
Ordering<B> ordering = Ordering.from(new ComparatorB());
我不知道该传递什么给sort方法。listA.sort(????)
1条答案
按热度按时间db2dz4w81#
这个怎么样?
或者,如果你想把一个B比较器变成一个A比较器,你可以这样做
问题更新后更新
你可以这样做:
我不确定您是否会将
Pair
视为“创建一个封装A和B的类”,但不清楚为什么您不希望这样做。这可能是你最好的选择。