前端之家收集整理的这篇文章主要介绍了
Java集合题,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px">
<span style="font-size:18px">问题:某班30个学生的学号为20070301-20070330,全部选修了<a target="_blank" href="http://lib.csdn.net/base/javaee" rel="nofollow" class="replace_word" title="Java EE知识库" style="color:rgb(223,52,52); text-decoration:none">Java程序设计课程,给出所有同学的成绩(可用随机数产生,范围60-100),请编写程序将本班各位同学的成绩按照从低到高排序打印输出。
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px">
<span style="font-size:18px">
要求:分别用List、Map、Set来实现,打印的信息包括学号、姓名和成绩。
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px">
1、使用List集合来实现
-
-
-
-
-
-
-
-
-
-
-
- 301,j=10;i<=20070330;i++,j++)
-
-
-
-
- 方法实现。
-
-
-
-
- lt=();
- 301
-
-
-
-
- 输出链表
-
-
-
-
-
-
-
-
-
- 函数
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- s2.grade)
-
-
-
-
-
-
Highlighter bg_java" style="font-family:Consolas,160); text-decoration:none; background-color:inherit; border:none; padding:1px; margin:0px 10px 0px 0px; display:inline-block; width:16px; height:16px; text-indent:-2000px">copy
方法。所以需要自定义一个比较器类,定义自己的比较规则。
2、使用Set集合来实现
404px; width:18px; height:18px; z-index:99">
ts=(
it=ts.iterator();
对TreeSet的总结:
(1)自定义一个比较器类,比如class Com implements{ } ,实现方法,在其中定义比较规则。
(2)步骤:将add进TreeSet中的元素实现Comparable接口,并且覆盖compareTo方法。这种顺序也是元素的自然顺序,或者叫做默认顺序。
方法1和方法2的区别:
两种方法各有优劣,用Comparable 简单,只要实现Comparable 接口的对象直接就成为一个可以比较的对象,但是需要修改源代码。
hs=();
li=
s2.grade)
对HashSet的总结:
是哈希表。是线程不安全的。不同步。
2、HashSet是如何保证元素唯一性的呢?
答:是通过元素的两个方法,hashCode和equals来完成。
如果元素的HashCode值相同,才会判断equals是否为true。如果元素的hashcode值不同,不会调用equals。
3、对HashSet的排序,通过将Set集合转化为List集合,借助Collections.Sort( )方法实现排序。
Highlighter bg_java" style="font-family:Consolas,160); text-decoration:none; background-color:inherit; border:none; padding:1px; margin:0px 10px 0px 0px; display:inline-block; width:16px; height:16px; text-indent:-2000px">copy
nofollow" title="在CODE上查看代码片" style="color:rgb(160,153); background-color:inherit; font-weight:bold">import
tm=();
k=tm.keySet();
it=k.iterator();
{
o.grade)
<span style="font-family:Arial; font-size:18px"><span style="font-family:'Courier New'; background-color:rgb(240,240,240)">
输出结果为:<span style="font-family:Arial; font-size:14px">
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px">
301 姓名:同学10 成绩:67
学号:20070304 姓名:同学13 成绩:69
学号:20070322 姓名:同学31 成绩:69
学号:20070328 姓名:同学37 成绩:70
学号:20070305 姓名:同学14 成绩:71
学号:20070319 姓名:同学28 成绩:73
学号:20070321 姓名:同学30 成绩:74
学号:20070310 姓名:同学19 成绩:81
学号:20070315 姓名:同学24 成绩:82
学号:20070307 姓名:同学16 成绩:84
学号:20070330 姓名:同学39 成绩:84
学号:20070312 姓名:同学21 成绩:85
学号:20070324 姓名:同学33 成绩:87
学号:20070306 姓名:同学15 成绩:88
学号:20070308 姓名:同学17 成绩:90
学号:20070327 姓名:同学36 成绩:90
学号:20070318 姓名:同学27 成绩:91
学号:20070316 姓名:同学25 成绩:92
学号:20070320 姓名:同学29 成绩:92
学号:20070314 姓名:同学23 成绩:93
学号:20070313 姓名:同学22 成绩:94
学号:20070302 姓名:同学11 成绩:95
学号:20070325 姓名:同学34 成绩:95
学号:20070329 姓名:同学38 成绩:97
学号:20070326 姓名:同学35 成绩:98
学号:20070311 姓名:同学20 成绩:99
自定义对象放入key中,将代表学号的整型放入value中。对Key排序时,可以指定自定义对象中的某个属性来排序。
方法添加元素。
Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。
keySet:将map中所有的键存入到Set集合。因为set具备迭代器。所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。
> entrySet:将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是:Map.Entry