1. 本周学习总结

2. 书面作业

Q1.ArrayList代码分析

Q1.1 解释ArrayList的contains源代码



这段代码的主要目的是判断在对ArrayList遍历时所用的方法,在输入参数o为null时,判断elementData[i]是否为null,如果是则返回i,不为null时,使用equals方法。

Q1.2 解释E remove(int index)源代码



这段代码的目的是用rangeCheck方法判断输入的参数index是否超出大小范围,如果是,则输出IndexOutOfBoundsException异常,如果不是,则删除指定的元素,之后再将删除位置之后的元素往前移,最后使得size-1的位置的值为null。

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

ArrayList存储数据时不需要考虑元素的类型,它可以存储不同类型的元素,但要加上泛型。

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

先确定数组的容量,当内部数组容量不够时,增加数组长度。

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

检查是否越界,超出则抛出异常。而后,取出原 index 位置的值,并且将新的 element 放入 Index 位置,返回 oldValue。

Q2.HashSet原理

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

当向HashSet(散列集)中增加新对象时,首先根据哈希函数计算要增加对象的hashCode码,根据该值来得到一个位置用元素来存放当前对象。如果在该位置上没有东西的话,那么HashSet认为该元素在集合中不存在,直接增加进去。如果在该位置已经有一个元素了,接着将准备增加到集合中的元素与该位置上的元素用equals方法进行比较。如果该equals方法返回false,那么说明HashSet中不存在该元素,再进行一次散列,将该元素放到散列后计算出来的地址中。如果equals方法返回true,那么说明HashSet中已经存在该元素了,不再将该元素增加到HashSet中。此过程需要调用的是equals方法和insert方法。

Q2.2 选做:尝试分析HashSet源代码后,重新解释1.1

...

Q3.ArrayListIntegerStack

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

在题集jmu-Java-04-面向对象2-进阶-多态、接口与内部类中的题目5-3是定义了Integer[]来存放输入的数据,然后再用ArrayIntegerStack类来对输入的数据进行需要的操作;而题集jmu-Java-05-集合之5-1 ArrayListIntegerStack中用list来存放输入的数据,并直接使用list中的操作就可以满足题目中的要求了。

Q3.2 简单描述接口的好处

能使整个结构清晰,类之间的通信简单易懂,扩展性好,提高复用性,我个人感觉,面向接口编程能够使整个代码都很有条理,在修改的时候很方便,这是切身体会!!而且采用面向接口编程的话,其他人一看你的代码就能明白你在写什么,大概想实现哪些功能,一目了然,便于查看。

Q4.Stack and Queue

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



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

    Queue<Integer> A= new ArrayDeque<Integer>();
Queue<Integer> B= new ArrayDeque<Integer>();

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

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

        Set<String> str = new TreeSet<String>();
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String s = sc.next();
if (!s.equals("!!!!!"))
str.add(s);
else
break;
}
System.out.println(str.size());
for (int i = 0; i < 10; i++) {
System.out.println(str.toArray()[i]);
}

6.选做:加分考察-统计文字中的单词数量并按出现次数排序

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

Q6.1 伪代码

Q6.2 实验总结

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

Q7.1 完善图形界面(说明与上次作业相比增加与修改了些什么)

Q7.2 使用集合类改进大作业

利用Set储存用户的信息不会重复。

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

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

3.1. 码云代码提交记录

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

3.2. PTA实验

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

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

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

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

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

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

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

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. Eclipse创建Maven项目报错的解决

    报错1:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart 起因:删除一个用quick ...

  2. 【转载】跟我一起学习VIM - vim插件

    目录 写在前面:Life Changing Editor 什么是VIM 为什么选VIM 为什么选其它 为什么犹豫选择它们 VIM >= SUM(现代编辑器) 如何学习VIM 一秒钟变记事本 VI ...

  3. MATLAB匹配按列碎开的纸片

    纵向切开的纸片的拼接 2013 CUMCM_B %% paper_cutting.m clear, close all clc %% import pictures, and save into im ...

  4. 总结一些php的面试题

    1.PHP语言的一大优势是跨平台,什么是跨平台?一.PHP基础: PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows.Linux等)上配置,不 ...

  5. 设计模式(4)--AbstractFactory(抽象工厂模式)--创建型

    1.模式定义: 抽象工厂是应对产品族概念的,提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类 2.模式特点: 抽象工厂模式为创建一组对象提供了一种解决方案.与工厂方法模式相比,抽象工 ...

  6. 直播协议 HTTP-FLV 详解

    传统的直播协议要么使用 Adobe 的基于 TCP 的 RTMP 协议,要么使用 Apple 的基于 HTTP 的 HLS 协议. 今天我要向大家介绍另外一种结合了 RTMP 的低延时,以及可以复用现 ...

  7. Objective-C写出Json文件(可作配置文件)

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #008f00 } span. ...

  8. Flask-RESTful接口开发学习笔记一:实现简单的GET请求

    1.首先安装需要依赖的第三方包: (1):Flask (2):Flask-RESTful 如何安装就不在啰嗦,pip也好,下载到本地再安装也好,看你随意. 2.我们先实现GET请求. Q:什么是GET ...

  9. STM32F030系列实现仿位带操作

    1.闲言 最近开发的时候,用到了STM32F030F4P6型号的单片机,它只有20个引脚,价格非常便宜,但是功能齐全:定时器.外部中断.串口.IIC.SPI.DMA和WWDG等等,应用尽有,非常适合用 ...

  10. MySQL 网络访问连接

    查看 /etc/hosts配置文件 [hotspot@bogon ~]$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localh ...