Java sort 的比較函式寫法
阿新 • • 發佈:2019-01-06
剛剛接觸java 有夠小白的import java.io.IOException; import java.util.Arrays; import java.util.Scanner; import java.lang.Integer; public class Main { static Scanner c=new Scanner(System.in); public static class Stu implements Comparable<Object> { public String name; public int score; Stu(String k,int ns){name=k;score=ns;} public int compareTo(Object o) { Stu as=(Stu)o; if(as.score==score) { return name.compareTo(as.name); } else { return Integer.valueOf(as.score).compareTo(Integer.valueOf(score)); } } } static Stu[] a=new Stu[1001]; static int[] str=new int[11]; public static void main(String args[]) throws IOException { int n,m,G; int num; while(true) { num=0; int res=0; n=c.nextInt(); if(n==0) break; m=c.nextInt(); G=c.nextInt(); String y; for(int i=0;i<m;++i) str[i+1]=c.nextInt(); for(int id=0;id<n;++id){ y=c.next(); int k=c.nextInt(),sum=0,t; for(int i=0;i<k;++i) { t=c.nextInt(); sum+=str[t]; } if(sum>=G) res++; a[num++]=new Stu(y,sum); } Arrays.sort(a,0,num); System.out.println(res); for(int i=0;i<num;++i) if(a[i].score>=G) { System.out.println(a[i].name+" "+a[i].score); } else break; } } }