Java集合题

前端之家收集整理的这篇文章主要介绍了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集合来实现

[java]  
 在CODE上查看代码片

派生到我的代码片

  1. al=new ArrayList();
  2. 301,j=10;i<=20070330;i++,j++)
  3. 方法实现。
  4.  lt=();  
  5. 301
  6. 输出链表
  7. 函数
  8. s2.grade)  

输出结果如图:

对List集合框架的总结:

,而不需要迭代。

输出List集合时,会默认调用集合中存储对象的t方法,所以在类中需要进行覆写。

方法,则必须使用

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

    猜你在找的Java相关文章