1.本周学习总结


2.书面作业

2.1ArrayList代码分析

2.1.1解释ArrayList的contains源代码

  • ArrayList.contain()方法通过调用indexOf()来判断元素位置从而确定其是否存在其中;与此同时通过调用equals()方法处理对象不为null的情形

2.1.2解释E remove(int index)源代码

  • E remove(int index)将表中第index位置元素删除

2.1.3结合1.1与1.2,回答ArrayList存储数据时需要考虑元素的具体类型吗?

  • 不用考虑,ArrayList存储的数据为引用类型,并且ArrayList存储数据实际上用的是Object的数组,Object类是所有类的默认父类;如果有实现限制数据类型的话,要按照数据类型进行存储数据

2.1.4分析add源代码,回答当内部数组容量不够时,怎么办?

  • add方法首先判断加入的元素是否超过数组容量;若超过,则扩大其数组容量ensureCapacity(size+1)

2.1.5分析private void rangeCheck(int index)源代码,为什么该方法应该声明为private而不声明为public?

  • private私有化,内容不被外界任意修改;rangeCheck方法用来判断给定的索引是否越界,外部不必访问

2.2HashSet原理

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

  • HashSet类按照哈希算法来存取对象。当向集合中加入一个新对象时,会调用对象的hashCode()方法得到对象的哈希码,然后根据这个哈希码计算出对象在集合中的存储位置;HashSet对象中不能存储相同数据(调用equals()),存储数据是无序的

2.2.2将元素加入HashSet中的时间复杂度是多少?是O(n)吗?(n为HashSet中已有元素个数)

  • 将元素加入HashSet中的时间复杂度不是O(n),是O(1);因为HashSet存储的数据是无序,且无需遍历,通过哈希码计算出对象在集合中的存储位置

2.3ArrayListIntegerStack

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

  • 本次ArrayListIntegerStack代码使用ArrayList<Integer>()存放对象,使用list的list.add() list.remove() list.isEmpty()实现 push、pop、peek、empty方法;上次则定义指针top=-1实现各种方法

2.3.2结合该题简单描述接口的好处,需以3.1为例详细说明,不可泛泛而谈

  • 使用IntegerStack接口,仅需构造一个类实现其接口,进而重写方法即可,使代码更加灵活简洁,也便于修改和维护

2.4 Stack and Queue

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

2.4.2题集jmu-Java-05-集合之银行业务队列简单模拟(只粘贴关键代码)。请务必使用Queue接口,并说明你使用了Queue接口的哪一个实现类?

  • 通过老师实验课上点拨,使用LinkedList类(按格式输出,不能顺手直接使用System.out.println())

2.5统计文字中的单词数量并按单词的字母顺序排序后输出

2.5.1实验总结

  • 实现按单词首字母的顺序输出,使用TreeSet()(互异性,不出现重复单词;并按首字母顺序排序)可实现;遇到"!!!!!" break跳出if()语句,反之添加单词;如何实现输出前10个(按字母顺序)单词,在课上通过老师的点拨--使用foreach并限制其范围(起初想的是用if(word.size()<=10)但苦于无果)

3.码云及PTA

3.1码云代码提交记录

3.2截图PTA题集完成情况图

3.3统计本周完成的代码量

周次 总代码量 新增代码量 总文件数 新增文件数
第一周 189 189 10 10
第二周 304 304 9 9
第三周 557 557 10 10
第四周 621 621 8 8
第五周 326 326 7 7
第六周 972 972 12 12
第七周 338 338 4 4
第八周 379 379 6 6

201621123040《Java程序设计》第八周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第八周学习总结

    1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...

  2. 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结

    <面向对象程序设计Java>第八周学习总结   项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...

  3. 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

  4. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  7. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  8. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  9. 20175209 《Java程序设计》第九周学习总结

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

  10. 20175317 《Java程序设计》第九周学习总结

    20175317 <Java程序设计>第九周学习总结 学前准备 首先下载XAMPP,下载完成后打开: 将前两个选项打开 在IDEA中配置驱动mysql-connector-java-5.1 ...

随机推荐

  1. 加深try catch Finnly的理解

    上代码 public String twoGetFeeInfoByWithUnit(JSONArray jsonArray,String key1,String key2){ String Debit ...

  2. 关于省市联动的bug

    一,问题描述 1.1,原来的思路 1.1.1,初始化加载省份 $.ajax({ 'type' : 'POST', 'dataType' : 'json', 'url' : '${rc.contextP ...

  3. monkeyrunner_获取apk的包名和activity名

    一.使用adb获取单个apk的包名和Activity名称: 1.配置adb环境 a. 我的电脑点击右键-属性-高级-环境变量; b.  环境变量中新建PATH,变量值输入adb.exe工具所在目录; ...

  4. 【原】如何获取Java动态生成类?

    写作目的:Java大部分框架,如Spring,Hibernate等都会利用动态代理在程序运行的时候生成新的类, 有的时候为了学习,或者深入了解动态代理,想查看动态生成类的源代码究竟长怎么个样子, 通过 ...

  5. java实现中文分词

    IK Analyzer是基于lucene实现的分词开源框架 下载路径:http://so.csdn.net/so/search/s.do?q=IKAnalyzer2012.jar&t=doc& ...

  6. [Luogu3425][POI2005]KOS-Dicing

    题面戳这 题目描述 Dicing is a two-player game and its outcome is fully random. Lately its popularity increas ...

  7. [SCOI2010]传送带

    在两个传送带上分别三分两个点计算 三分套三分 # include <bits/stdc++.h> # define IL inline # define RG register # def ...

  8. javascript使用闭包模拟私有属性和方法

    最近因为做了一个项目,其中涉及到了js私有方法,这个概念在其语言里面是很常见的,很多语言都有private这个关键字,只要在一个类的前面加上private就表示申明了一个私有方法,但是javascri ...

  9. 安装anaconda与tensorflow

    在安装Anaconda之前,有的已经安装过一个Python版本了,但是又不想删除这个Python版本,该怎么办呢? 安装anaconda与tensorflow一条龙 jupyter notebook ...

  10. 仿QQ发语音、图片选择、表情选择demo

    一款仿QQ发语音.图片选择.调用拍照.表情选择的demo git地址:https://github.com/PureLovePeter/pic.git.  喜欢的请 star  star star,共 ...