Java用vector容器排序
/**
 * 功能:定义一个Student数组,其中保存学生的基本信息,包括姓名,学号,性别,还有三门课的成绩
 * 		和课程对应的学分,计算出学分积,降序排序
 * 时间:2014年6月4日16:33:24
 * 作者:cutter_point
 */
package com.lesson4;
import java.util.*;
public class Demo4_10
{
	public static void main(String [] args)
	{
		//吧成绩放到vector里面去
		Student s1=new Student("宋江",1,3,3,5);
		Student s2=new Student("肖锋",2,9,9,8);
		Student s3=new Student("武松",3,2,10,7);
		Student s4=new Student("吴用",4,10,2,6);
		Student s5=new Student("诸葛亮",5,10,1,5);
		Student s6=new Student("周瑜",6,8,8,7);
		Student s7=new Student("司马懿",7,9,10,9);
		Student s8=new Student("李逵",8,1,10,6);
		Student s9=new Student("孙悟空",9,8,10,9);
		Student s10=new Student("唐僧",10,2,2,2);
		
		//存放未排序的
		Vector<Student> v1=new Vector<Student>();
		//存放排序后的
		Vector<Student> v2=new Vector<Student>();
		
		//吧类放到v1里面去
		v1.add(s1);v1.add(s2);v1.add(s3);v1.add(s4);v1.add(s5);
		v1.add(s6);v1.add(s7);v1.add(s8);v1.add(s9);v1.add(s10);
		
		System.out.println(v1.size());
		
		Student temp1=null;
		Student temp2=null;
		//根据分数进行排序,然后放入到vector中去,依次找到最小的然后去掉它就可以了
		for(int i=0 ; v1.size() > 1  ; )
		{
			//每次都取当前的第一个,因为我会一直删里面的类
			temp1=v1.get(i);
			//和后面的比较
			for(int j=1 ; j<v1.size() ; ++j)
			{
				temp2=v1.get(j);
				if(temp1.getCredit()<temp2.getCredit())
				{
					//如果第一个是小的,那么就交换,一直到找到最大的
					temp1=temp2;
				}
			}
			//第一层循环完成,找到当前最大的,放入到v2的第一个
			v2.add(temp1);
			//吧当前的temp1从v1去掉,直到v1被搬空为止
			v1.remove(temp1);			
		}
		
		//输出v2
		for(int i=0 ; i<v2.size() ; ++i)
		{
			Student st=v2.get(i);
			System.out.println("ID:"+st.sid+"名字:"+st.sname+"学分之和:"+st.getCredit());
		}
	}
}
class Student
{
	String sname;
	int sid;
	String sex;
	int ascore;
	int bscore;
	int cscore;
	int acredit;
	int bcredit;
	int ccredit;
	
	public Student(String sname, int sid, int acredit, int bcredit, int ccredit)
	{
		this.sname=sname;
		this.sid=sid;
		this.acredit=acredit;
		this.bcredit=bcredit;
		this.ccredit=ccredit;
	}
	
	public Student getLei(int id)
	{
		if(this.sid == id)
		{
			return this;
		}
		else
		{
			return null;
		}
	}
	
	public int getCredit()
	{
		return acredit+bcredit+ccredit;
	}
}public Student getLei(int id)
	{
		if(this.sid == id)
		{
			return this;
		}
		else
		{
			return null;
		}
	}

Java用vector容器排序,布布扣,bubuko.com
原文地址:http://blog.csdn.net/cutter_point/article/details/28438159