1. 程式人生 > >Java sort 的比較函式寫法

Java sort 的比較函式寫法

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;
	    }
	}
}
剛剛接觸java 有夠小白的