java vector的排序_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 v1=new Vector();

//存放排序后的

Vector v2=new Vector();

//吧类放到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

{

temp2=v1.get(j);

if(temp1.getCredit()

{

//如果第一个是小的,那么就交换,一直到找到最大的

temp1=temp2;

}

}

//第一层循环完成,找到当前最大的,放入到v2的第一个

v2.add(temp1);

//吧当前的temp1从v1去掉,直到v1被搬空为止

v1.remove(temp1);

}

//输出v2

for(int i=0 ; 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;

}

}PS:这个玩意我搞了2个小时,没想到好难,但是想到了就好简单的,开始我的想法是根据每一个Student对象的sid来找到类,只要把credit总的排序排好,在根据这个来找到sid就可以找到类了,这个想法想起来很可以,但是想要实现的难度还是有点大的,反正以我现在的水平那是没办法,当然你可以用其他容器。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VectorJava中的一种动态数组,它可以根据需要自动增长和缩小。Vector的使用非常广泛,下面详细介绍一下它的使用方法。 1. 创建Vector对象 创建Vector对象的方式有两种: - 使用无参构造函数创建一个空的Vector对象: ```java Vector vector = new Vector(); ``` - 使用带参构造函数创建指定大小的Vector对象: ```java Vector vector = new Vector(int initialCapacity); ``` 2. 添加和获取元素 向Vector中添加元素的方式有两种: - 使用add()方法添加元素到Vector的末尾: ```java vector.add(element); ``` - 使用insertElementAt()方法在指定位置插入元素: ```java vector.insertElementAt(element, index); ``` 获取Vector中的元素也有两种方式: - 使用get()方法获取指定位置的元素: ```java vector.get(index); ``` - 使用elementAt()方法获取指定位置的元素: ```java vector.elementAt(index); ``` 3. 修改和删除元素 修改Vector中的元素使用set()方法: ```java vector.set(index, element); ``` 删除Vector中的元素使用remove()方法: ```java vector.remove(index); ``` 4. 判断Vector是否为空 使用isEmpty()方法来判断Vector是否为空: ```java vector.isEmpty(); ``` 5. 获取Vector的大小 使用size()方法获取Vector的大小: ```java vector.size(); ``` 6. 遍历Vector 使用for循环遍历Vector中的元素: ```java for (int i = 0; i < vector.size(); i++) { Object element = vector.get(i); // do something with element } ``` 使用迭代器Iterator遍历Vector中的元素: ```java Iterator iterator = vector.iterator(); while (iterator.hasNext()) { Object element = iterator.next(); // do something with element } ``` 以上就是Vector的使用方法,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值