rank排序代码java java排序算法代码实现

java投票排名实现两种实现方式:1)sql,2)java
1)sql语句-mysql
SELECT NAME,num,ranking
FROM (SELECT NAME,num,
IF (num =@num ,@ranking ,@ranking :=@ranking + 1)AS ranking,
@num := num
FROM score,
(SELECT @ranking := 0,@num:=-1) tmp
ORDER BY num DESC
)tmp
2) java实现
public static void main(String[] args) {
//初始化数据
ListRank ranks = Arrays.asList(new Rank("薛之谦", 100l),
new Rank("陈奕迅", 102l),
new Rank("田馥甄", 100l),
new Rank("周杰伦", 99l));
//按分数降序排序
ranks.sort((r1, r2) - r2.getNum().compareTo(r1.getNum()));
//计算排名
int ranking = 0;
long num = -1;
for (Rank rank : ranks) {
rank.setRanking(rank.getNum() == num ? ranking : ++ranking);
【rank排序代码java java排序算法代码实现】num = rank.getNum();
}
//输出
ranks.forEach(o - System.out.println(o.getName() + ";" + o.getNum() + ":" + o.getRanking()));
}
怎么用rank函数排名次rank函数rank排序代码java的语法格式
=rank(number,ref,[order])
number ——参与排名rank排序代码java的数值
ref ——排名的数值区域
order——有1和0两种 。0——从大到小排名(降序)rank排序代码java,1——从小到大排名(升序) 。
0默认不用输入rank排序代码java,得到的就是从大到小的排名 。
如rank(A1,A1:A100,0)
请采纳rank排序代码java , 谢谢 。
java List 排名import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class StudentSortDemo {
public static void main(String[] args) {
ListStudent studentList=new ArrayListStudent();
studentList.add(new Student("小明", 85));
studentList.add(new Student("小花", 85));
studentList.add(new Student("小军", 100));
studentList.add(new Student("小强", 70));
studentList.add(new Student("小红", 85));
ComparatorStudent comparator=new ComparatorStudent() {
@Override
public int compare(Student o1, Student o2) {
if(o1.getSorce()o2.getSorce()){
return 1;
}else if(o1.getSorce()==o2.getSorce()){
return 0;
}else{
return -1;
}
}
};
studentList.sort(comparator);
System.out.println(studentList);
for(int i=0,s=studentList.size();is;i++){
if(i0studentList.get(i).getSorce()==studentList.get(i-1).getSorce()){
studentList.get(i).setRank(studentList.get(i-1).getRank());
}else{
studentList.get(i).setRank(i+1);
}
}
System.out.println(studentList);
}
}
class Student{
private String name;
private int sorce;
private int rank;
public Student(String name,int sorce){
this.name=name;
this.sorce=sorce;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSorce() {
return sorce;
}
public void setSorce(int sorce) {
this.sorce = sorce;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
@Override
public String toString() {
return getName()+" 分数:"+getSorce()+" 排名:"+getRank();
}
}
运行结果:
[小军 分数:100 排名:0, 小明 分数:85 排名:0, 小花 分数:85 排名:0, 小红 分数:85 排名:0, 小强 分数:70 排名:0]
[小军 分数:100 排名:1, 小明 分数:85 排名:2, 小花 分数:85 排名:2, 小红 分数:85 排名:2, 小强 分数:70 排名:5]
rank排序代码java的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于java排序算法代码实现、rank排序代码java的信息别忘了在本站进行查找喔 。

推荐阅读