Java用vector容器排序
来源:互联网 发布:淘宝宝贝详情添加链接 编辑:程序博客网 时间:2024/06/11 16:20
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);}//输出v2for(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;}}
PS:这个玩意我搞了2个小时,没想到好难,但是想到了就好简单的,开始我的想法是根据每一个Student对象的sid来找到类,只要把credit总的排序排好,在根据这个来找到sid就可以找到类了,这个想法想起来很可以,但是想要实现的难度还是有点大的,反正以我现在的水平那是没办法,当然你可以用其他容器。
然后我又想到了用二维数组,第一层用来表示id从1到10,然后第二层来存放credit,这样找到credit就可以找到sid了,然后
public Student getLei(int id){if(this.sid == id){return this;}else{return null;}}
来找类,但是好想s1到s10我的写10遍啊,这个太蛋疼了,没写完我就放弃了,最后我想到每次找最大的,找到了就把他移动到另外一个容器vector上不就可以了!!!
这样另外一个容器上的就是从大到小了啊!!!
好样的,就这样我就写出来了,从上面的代码中还可以看到有很多的痕迹使我之前的各种想法
0 0
- Java用vector容器排序
- Vector容器排序
- java容器类---Vector
- Java容器五:Vector
- JAVA集合容器--Vector
- 在 vector 容器中排序
- C++ vector容器使用 排序
- C++ vector容器使用 排序
- C++ vector容器使用 排序
- 快速排序算法-容器存储vector
- vector向量容器元素排序与查找
- 对vector等STL容器进行排序
- 关于vector容器进行插入排序
- java 容器排序
- Java 容器排序
- java容器的排序
- java的容器排序
- Effective stl 第23条:考虑用排序的vector代替关联容器
- string::find()的用法总结
- Android Animation之transition
- 插入排序(直接插入,折半插入,希尔)
- phpcmsv9源码解析 我的面板
- JAVA实现SFTP上传,下载,删除等方法
- Java用vector容器排序
- fastjson数据解析实例
- VC MFC SDI/MDI框架各部分指针获取方式
- How to use Access Log Sampler to Generate Traffic with JMeter
- UDK初学教程 02: Kismet
- 真理名言
- Cocos2d-x学习笔记(9)(CCTextFieldTTF输入框的使用)
- Subversion 的安装与使用
- 网络通讯之长连接与短连接