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

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.*; 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 static final Logger LOGGER = LoggerFactory.getLogger(Hero.class);
private String id; private String id;
@ -395,4 +395,13 @@ public class Hero extends MongoBase {
updateString("skin",skin); 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(); tabletMax = heroManager.getHongmengMaxLevelByInt();
}else { }else {
// 玩家英雄背包按等级排序 // 玩家英雄背包按等级排序
Collections.sort(heroes, new Comparator<Hero>() { Collections.sort(heroes);
@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());
}
});
for (int i = 0; i < heroes.size(); i++) { for (int i = 0; i < heroes.size(); i++) {
Hero hero = heroes.get(i); Hero hero = heroes.get(i);
@ -4344,13 +4335,9 @@ public class HeroLogic{
List<Hero> heroes = new ArrayList<>(values); List<Hero> heroes = new ArrayList<>(values);
// 玩家英雄背包按等级排序 // 玩家英雄背包按等级排序
Collections.sort(heroes, (hero1, hero2) -> { long start = System.currentTimeMillis();
int compareValue = hero2.getOriginalLevel() - hero1.getOriginalLevel(); Collections.sort(heroes);
if (compareValue != 0) { LOGGER.info("英雄背包排序耗时:{}ms",System.currentTimeMillis()-start);
return compareValue;
}
return Integer.compare(hero2.getStar(), hero1.getStar());
});
// 等级相加 // 等级相加
int count = 0; int count = 0;
for (int i = 0; i < num; i++) { for (int i = 0; i < num; i++) {