寻找发帖水王java_SWUST_OJ 水王发帖排序
Description
眾所周知,現(xiàn)在各大論壇有很多水王,他們的發(fā)貼數(shù)是如此之多,以至于必須要用高精度數(shù)才能保存。現(xiàn)在ACMForum決定舉行一次水王爭(zhēng)霸賽,比賽的規(guī)則是將這些水王截止到2007年4月28日23時(shí)59分59秒這一刻所發(fā)的總貼數(shù)從大到小進(jìn)行排序。每個(gè)水王當(dāng)然都想取得盡量靠前的名次,所以他們竭盡全力,不擇手段地進(jìn)行灌水。終于,激動(dòng)人心的一刻到來了,2007年4月29日0時(shí)0分0秒,你作為裁判得到了每個(gè)水王的發(fā)貼數(shù),現(xiàn)在,你的任務(wù)是公正地把這些水王按照發(fā)貼數(shù)從大到小進(jìn)行排序。
Input
輸入的第一行是一個(gè)1到1000的整數(shù)N,表示總共有N位水王參加了爭(zhēng)霸賽。
Output
以下依次給出每位水王的描述,一位水王的描述占據(jù)一行,前面為一個(gè)僅由字母和數(shù)字組成的長(zhǎng)度不超過20的字符串,代表這個(gè)水王的ID,后面為一個(gè)整數(shù)(非負(fù)數(shù)),代表這個(gè)水王的發(fā)貼數(shù),注意,這個(gè)整數(shù)小于2,000,000,000。依次輸出按照發(fā)貼數(shù)從小到大排好序的各位水王的ID和這個(gè)水王的發(fā)貼數(shù),ID和發(fā)貼數(shù)用空格分開。不能有任何多余的字符。若幾個(gè)ID的發(fā)貼數(shù)相同,則按照ID輸入的先后順序進(jìn)行排列。
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
解題思路很簡(jiǎn)單,一個(gè)結(jié)構(gòu)體或者類其包含姓名和發(fā)帖量?jī)蓚€(gè)變量,然后建個(gè)數(shù)組并按發(fā)帖量排序輸出即可。
Java中的ArrayList需要通過collections類的sort方法來進(jìn)行排序,當(dāng)ArrayList的類型是Comparable接口的子類,如String和Integer時(shí)可以直接Collections.sort(lists)排序,此時(shí)是升序排序。自定義排序可以在類內(nèi)實(shí)現(xiàn)Comparable接口也可以重載Collections.sort函數(shù)。重載函數(shù)自定義排序方式則需要有類來實(shí)現(xiàn)Comparator接口并重寫compare方法,調(diào)用sort方法時(shí)將ArrayList對(duì)象與實(shí)現(xiàn)Commparator接口的類的對(duì)象作為參數(shù)。
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);
}
}
總結(jié)
以上是生活随笔為你收集整理的寻找发帖水王java_SWUST_OJ 水王发帖排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (十三)Thread-Specific
- 下一篇: allegro修改铜皮网络