| 300 | } |
| 301 | |
| 302 | private BRankList merge(BRankList left, BRankList right) { |
| 303 | BRankList result = new BRankList(); |
| 304 | int indexLeft = 0; |
| 305 | int indexRight = 0; |
| 306 | while (indexLeft < left.getRankList().size() && indexRight < right.getRankList().size()) { |
| 307 | var c = compactor.compare(left.getRankList().get(indexLeft).getDynamic().getBean(), |
| 308 | right.getRankList().get(indexRight).getDynamic().getBean()); |
| 309 | if (c >= 0) { |
| 310 | result.getRankList().add(left.getRankList().get(indexLeft)); |
| 311 | ++indexLeft; |
| 312 | } else { |
| 313 | result.getRankList().add(right.getRankList().get(indexRight)); |
| 314 | ++indexRight; |
| 315 | } |
| 316 | } |
| 317 | // 下面两种情况不会同时存在,同时存在"在上面"处理。 |
| 318 | if (indexLeft < left.getRankList().size()) { |
| 319 | while (indexLeft < left.getRankList().size()) { |
| 320 | result.getRankList().add(left.getRankList().get(indexLeft)); |
| 321 | ++indexLeft; |
| 322 | } |
| 323 | } else if (indexRight < right.getRankList().size()) { |
| 324 | while (indexRight < right.getRankList().size()) { |
| 325 | result.getRankList().add(right.getRankList().get(indexRight)); |
| 326 | ++indexRight; |
| 327 | } |
| 328 | } |
| 329 | return result; |
| 330 | } |
| 331 | |
| 332 | public static class RankTotal extends ReentrantLock { |
| 333 | private long BuildTime; |