• 201521123098 《Java程序设计》第7周学习总结


    1. 本周学习总结

    以你喜欢的方式(思维导图或其他)归纳总结集合相关内容。

    2. 书面作业

    1. ArrayList代码分析

    • 1.1 解释ArrayList的contains源代码

        该方法调用了indexOf(Object o)方法;
        而indexOf(Object o)方法对参数o执行的是:
        遍历该ArrayList型的容器,若找到与o参数等值的项则返回该项位置,找不到则返回-1;
        contain(Object o)方法则是对indexOf(Object o)所返回的值进行判断,若返回值大于等于0则说明存在,由此返回true,若为-1则返回false表不存在。
      
    • 1.2 解释E remove(int index)源代码

        该方法先调用rangeCheck(int index)方法,判断该位置是否超出容器范围,若超出则抛出IndexOutOfBoundsException(outOfBoundsMsg(index));
        若未超出则保存该位置的数据(旧数据),将该位置之后的数据往前移动,最后一个数据改为null后简短容器长度;
        最后返回旧数据。
      
    • 1.3 结合1.1与1.2,回答ArrayList存储数据时需要考虑元素的类型吗?

        所有数据都存在该数组里,该数组被定义为Object[]型,说明所有类型都能用。
      
    • 1.4 分析add源代码,回答当内部数组容量不够时,怎么办?

        当容量不够时将数组的容量单元+1来储存添加的数据。	
      
    • 1.5 分析private void rangeCheck(int index)源代码,为什么该方法应该声明为private而不声明为public?

        因为在进行各个方法的调用时需要该方法时就会自动被调用,开发者不需要自己手动进行判断是否越界。
        如 1.4题中的add()方法。
      

    2. HashSet原理

    • 2.1 将元素加入HashSet(散列集)中,其存储位置如何确定?需要调用那些方法?

        若要确定位置,则就在HashMap中找到它的hashCode,若hashCode没有被重写则都为10并返回10;	
        若被重写了就返回重写后定义的值;
        这个返回的值就是hash表的位置,储存到该位置就可以了。
      
    • 2.2 选做:尝试分析HashSet源代码后,重新解释1.1

        调用HashMap中map的containsKey(Object key)方法,该方法又调用了getEntry(Object key)方法,返回的是key在哈希表中的位置;
        containsKey(Object key)方法将返回的值进行判断,若不为null则返回1,若为null则返回0;
        这个返回的值也就是HashSet的contains(Object key)方法的返回值。
      

    3. 题集jmu-Java-05-集合之5-1 ArrayListIntegerStack

    • 3.1 比较写的ArrayListIntegerStack与自己在题集jmu-Java-04-面向对象2-进阶-多态、接口与内部类中的题目5-3自定义接口ArrayIntegerStack,有什么不同?(不要出现大段代码)

        下面以两个实验中对push方法的定义为例子来说明两者的不同。
      


    • 3.2 简单描述接口的好处.

        接口可以对实现类所需要的方法进行统一声明;
        实现类对接口的实现就是对其声明方法的重写。
      
    • 3.3 实验总结

        当用ArrayList型来储存栈的数据时就应该学会合理调用ArrayList自带的一些方法来提高工作效率,如:
        	push方法可以调用ArrayList的add方法;
        	empty方法可以直接返回ArrayList的isEmpty方法的返回值;
        	pop方法可以调用ArrayList的remove方法。
      

    4. Stack and Queue

    • 4.1 编写函数判断一个给定字符串是否是回文,一定要使用栈,但不能使用java的Stack类(具体原因自己搜索)。请粘贴你的代码,类名为Main你的学号

    • 4.2 题集jmu-Java-05-集合之5-6 银行业务队列简单模拟。(不要出现大段代码)

    5. 题集jmu-Java-05-集合之5-2 统计文字中的单词数量并按单词的字母顺序排序后输出 (不要出现大段代码)

    • 实验总结

        要学会使用TreeSet的自动排序功能来减少自己的工作量。
      

    6. 选做:加分考察-题集jmu-Java-05-集合之5-3 统计文字中的单词数量并按出现次数排序(不要出现大段代码)

    • 6.1 伪代码
    • 6.2 实验总结

    7. 面向对象设计大作业-改进

    	打开软件:  
    

    	点击登录:  
    

    	输入用户密码:  
    

    	点击显示购物车:  
    

    	注销 重复登录过程  这次登陆agt账户  :  
    

    	购物车排序:  
    

    	注销  并尝试暴力破解某用户密码 :  
    

    	等待设定的freezeTime(aka 60seconds here)重新显示登陆框:  
    

    3. 码云上代码提交记录及PTA实验总结

    题目集:jmu-Java-05-集合

    • 3.1. 码云代码提交记录

      在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

    • 3.2. PTA实验

      编程(5-1, 5-2, 5-3(选做), 5-6)

    • 3.3. 实验总结已经在作业中体现,不用写。

  • 相关阅读:
    单播、广播和多播IP地址
    nagios安装部署及详细配置说明(转)
    centos6.5下cacti部署说明
    HAproxy配置详解
    mysql全量和增量备份详解(带脚本)
    lvs原理及安装部署详解(参考)
    curl命令的用法
    mysql日志解析
    MySQL查看和修改表的存储引擎
    mysql备份和还原
  • 原文地址:https://www.cnblogs.com/niverse745/p/6682846.html
Copyright © 2020-2023  润新知