适用于小规模的排序 每一次插入都对整个数组排序
private static List<DevilTrialDmgVo> rankList = new ArrayList<DevilTrialDmgVo>();
public static int sort(DevilTrialDmgVo dmgVo) {
int resultIndex = -1;
boolean inserted = false;
for (int i = 0; i < rankList.size(); i++) {
DevilTrialDmgVo userInList = rankList.get(i);
if(userInList.getRoleID().equals(dmgVo.getRoleID())) {
rankList.remove(i);
i--;
continue;
}
if(!inserted) {
if(dmgVo.getDamageVal() > userInList.getDamageVal()) {
rankList.add(i,dmgVo);
resultIndex = i;
inserted = true;
i++;
userInList.setRank(i + 1);
continue;
}
}
userInList.setRank(i+1);
}
int size =rankList.size();
if(!inserted && size < 999) {
resultIndex = size;
rankList.add(dmgVo);
}
if(size > 999) {
rankList.remove(size - 1);
}
dmgVo.setRank(resultIndex + 1);
return resultIndex;
}
/**
* Created by TeemoWang on 2015/10/8.
*/
public class DevilTrialDmgVo {
private String roleID;
private long damageVal;
private int rank;
public String getRoleID() {
return roleID;
}
public void setRoleID(String roleID) {
this.roleID = roleID;
}
public long getDamageVal() {
return damageVal;
}
public void setDamageVal(long damageVal) {
this.damageVal = damageVal;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
}