大闹天宫,英雄排序方式优化

back_recharge
duhui 2021-03-02 09:50:44 +08:00
parent 974891f80a
commit 78709a72e8
2 changed files with 14 additions and 18 deletions

View File

@ -19,7 +19,7 @@ import org.slf4j.LoggerFactory;
import java.util.*;
public class Hero extends MongoBase {
public class Hero extends MongoBase implements Comparable<Hero> {
private static final Logger LOGGER = LoggerFactory.getLogger(Hero.class);
private String id;
@ -395,4 +395,13 @@ public class Hero extends MongoBase {
updateString("skin",skin);
}
@Override
public int compareTo(Hero o) {
int compareValue = o.getOriginalLevel() - this.getOriginalLevel();
if (compareValue != 0) {
return compareValue;
}
return Integer.compare(o.getStar(), this.getStar());
}
}

View File

@ -3655,16 +3655,7 @@ public class HeroLogic{
tabletMax = heroManager.getHongmengMaxLevelByInt();
}else {
// 玩家英雄背包按等级排序
Collections.sort(heroes, new Comparator<Hero>() {
@Override
public int compare(Hero hero1, Hero hero2) {
int compareValue = hero2.getOriginalLevel() - hero1.getOriginalLevel();
if (compareValue != 0) {
return compareValue;
}
return Integer.compare(hero2.getStar(), hero1.getStar());
}
});
Collections.sort(heroes);
for (int i = 0; i < heroes.size(); i++) {
Hero hero = heroes.get(i);
@ -4344,13 +4335,9 @@ public class HeroLogic{
List<Hero> heroes = new ArrayList<>(values);
// 玩家英雄背包按等级排序
Collections.sort(heroes, (hero1, hero2) -> {
int compareValue = hero2.getOriginalLevel() - hero1.getOriginalLevel();
if (compareValue != 0) {
return compareValue;
}
return Integer.compare(hero2.getStar(), hero1.getStar());
});
long start = System.currentTimeMillis();
Collections.sort(heroes);
LOGGER.info("英雄背包排序耗时:{}ms",System.currentTimeMillis()-start);
// 等级相加
int count = 0;
for (int i = 0; i < num; i++) {