寻找发帖水王java_SWUST_OJ 水王发帖排序
Description
眾所周知,現在各大論壇有很多水王,他們的發(fā)貼數是如此之多,以至于必須要用高精度數才能保存。現在ACMForum決定舉行一次水王爭霸賽,比賽的規(guī)則是將這些水王截止到2007年4月28日23時59分59秒這一刻所發(fā)的總貼數從大到小進行排序。每個水王當然都想取得盡量靠前的名次,所以他們竭盡全力,不擇手段地進行灌水。終于,激動人心的一刻到來了,2007年4月29日0時0分0秒,你作為裁判得到了每個水王的發(fā)貼數,現在,你的任務是公正地把這些水王按照發(fā)貼數從大到小進行排序。
Input
輸入的第一行是一個1到1000的整數N,表示總共有N位水王參加了爭霸賽。
Output
以下依次給出每位水王的描述,一位水王的描述占據一行,前面為一個僅由字母和數字組成的長度不超過20的字符串,代表這個水王的ID,后面為一個整數(非負數),代表這個水王的發(fā)貼數,注意,這個整數小于2,000,000,000。依次輸出按照發(fā)貼數從小到大排好序的各位水王的ID和這個水王的發(fā)貼數,ID和發(fā)貼數用空格分開。不能有任何多余的字符。若幾個ID的發(fā)貼數相同,則按照ID輸入的先后順序進行排列。
Sample
InputRaw
6
Lowai?1986
Zhouyuan?2987
Maolaoda?2345
BuTaoCaiGuai 2548
ArthurKing 2003
Hyyylr 3185
Sample
OutputRaw
Lowai 1986
ArthurKing 2003
Maolaoda 2345
BuTaoCaiGuai 2548
Zhouyuan 2987
Hyyylr 3185
解題思路很簡單,一個結構體或者類其包含姓名和發(fā)帖量兩個變量,然后建個數組并按發(fā)帖量排序輸出即可。
Java中的ArrayList需要通過collections類的sort方法來進行排序,當ArrayList的類型是Comparable接口的子類,如String和Integer時可以直接Collections.sort(lists)排序,此時是升序排序。自定義排序可以在類內實現Comparable接口也可以重載Collections.sort函數。重載函數自定義排序方式則需要有類來實現Comparator接口并重寫compare方法,調用sort方法時將ArrayList對象與實現Commparator接口的類的對象作為參數。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList list=new ArrayList();
Scanner in=new Scanner(System.in);
int k=in.nextInt();
for(int i=0;i
list.add(new ShuiWang(in.next(),in.nextBigInteger()));
}
Collections.sort(list, new SortByNum());
for(int j=0;j
list.get(j).sysMy();
}
}
}
class SortByNum implements Comparator{
@Override
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
ShuiWang s1=(ShuiWang)o1;
ShuiWang s2=(ShuiWang)o2;
return s1.getNum().compareTo(s2.getNum());
}
}
import java.math.BigInteger;
public class ShuiWang {
private String name;
private BigInteger num;
public ShuiWang(String name, BigInteger num) {
super();
this.name = name;
this.num = num;
}
public String getName() {
return name;
}
public BigInteger getNum() {
return num;
}
public void sysMy() {
System.out.println(this.name+" "+this.num);
}
}
總結
以上是生活随笔為你收集整理的寻找发帖水王java_SWUST_OJ 水王发帖排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (十三)Thread-Specific
- 下一篇: allegro修改铜皮网络