欢迎来到天天文库
浏览记录
ID:27809241
大小:279.02 KB
页数:7页
时间:2018-12-06
《一道java集合框架题多种解题思路》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一道Java集合框架题多种解题思路这篇文章主要介绍了一道Java集合框架题,多种解题思路,具有一定的参考价值,感兴趣的小伙伴们可以参考一下问题:某班30个学生的学号为20070301-20070330,全部选修了Java程序设计课程,给出所有同学的成绩(可用随机数产生,范围60-100),请编写程序将本班各位同学的成绩按照从低到高排序打印输出。要求:分别用List、Map、Set来实现,打印的信息包括学号、姓名和成绩。1、使用List集合来实现importjava.utiLArrayList;importjava.utiLCollections;importjava.u
2、tiLComparator;importjava.utilIterator;importjava.utiLLinkedList;importjava.utiLTreeMap;publicclassTest2{publicstaticvoidmain(String[]args){/*此处用ArrayList实现**ArrayListal=newArrayList();for(inti=20070301J=10;i<=20070330;i++J++){al.add(newStudent(i,(int)(40*Math.random()+6
3、0)/”同学"+j));}//ArrayList排序借助Collections中的sort()方法实现。Collections.sortfal,newSortbygrade());for(Studentsd:al)System.out.println(sd);*/LinkedListlt=newLinkedList();for(inti=20070301J=10;i<=20070330;i++J++){lt.add(newStudent(i,(int)(40*Math.random()+60)/"同学H+j));}//对链表排序Col
4、lections.sort(lt,newSortbygrade());〃输出链表for(Studentsd:lt)System.out.println(sd);}}〃学生类classStudentfintnum.grade;Stringname;//构造函数publicStudent(intnumjntgrad巳Stringname){this.num=num;this.name=name;this.grade=grade;}〃此处必须覆写publicStringtoString(){//System.out・println(”hi“);return”学号:,,+thi
5、s.num+,,t,,+H姓名:n+this.name+"”+”成绩:M+this.grade;}}〃创建一个比较器类classSortbygradeimplementsComparator{(©Overridepublicintif(sl.grade>s2.grade)if(sl.grade==s2.grade)return1;returncompare(Studentsi,Students2){if(sl.grade6、集合框架的总结:1、List集合其实是一个动态的数组,元素可以直接通过for循环取出,而不需要迭代。2、输出List集合时,会默认调用集合中存储对象的toString()方法,所以在类中需要进行覆写。若不覆写toString()方法,则必须使用for(inti=O;i7、比较器类O)方法。所以需要自定义一个比较器类,定义自己的比较规则。2、使用Set集合来实现(1)使用TreeSet来实现packagecom.packagel;importjava.util.*;publicclassStuScore{publicstaticvoidmain(String[]args){TreeSetts=newTreeSet(newCom⑴;〃添加元素进去for(inti=20070301zj=l;i<=20070330;i++J++){ts.addfnewStudent®"同学"+
6、集合框架的总结:1、List集合其实是一个动态的数组,元素可以直接通过for循环取出,而不需要迭代。2、输出List集合时,会默认调用集合中存储对象的toString()方法,所以在类中需要进行覆写。若不覆写toString()方法,则必须使用for(inti=O;i7、比较器类O)方法。所以需要自定义一个比较器类,定义自己的比较规则。2、使用Set集合来实现(1)使用TreeSet来实现packagecom.packagel;importjava.util.*;publicclassStuScore{publicstaticvoidmain(String[]args){TreeSetts=newTreeSet(newCom⑴;〃添加元素进去for(inti=20070301zj=l;i<=20070330;i++J++){ts.addfnewStudent®"同学"+
7、比较器类O)方法。所以需要自定义一个比较器类,定义自己的比较规则。2、使用Set集合来实现(1)使用TreeSet来实现packagecom.packagel;importjava.util.*;publicclassStuScore{publicstaticvoidmain(String[]args){TreeSetts=newTreeSet(newCom⑴;〃添加元素进去for(inti=20070301zj=l;i<=20070330;i++J++){ts.addfnewStudent®"同学"+
此文档下载收益归作者所有