1. 本周学习总结
以你喜欢的方式(思维导图或其他)归纳总结集合相关内容。
参考资料:
2. 书面作业
1.ArrayList代码分析
1.1 解释ArrayList的contains源代码
代码:
Contains方法里面又调用了indexof方法,如果indexof方法返回值小于0,则表示O不存在对象数组里面,而indexof方法是将O对象与对象数组里面的元素一个一个进行比较的,如果有查到一样的,就返回该元素的位置,没有则返回-1
1.2 解释E remove(int index)源代码
首先根据指定的位置找到要删除的元素,然后将该元素移除,向左移动所有后续元素,再将长度减1。
1.3 结合1.1与1.2,回答ArrayList存储数据时需要考虑元素的类型吗?
不用考虑,ArrayList存储的数据都要是引用类型,而且ArrayList存储数据实际上是用Object的数组。
1.4 分析add源代码,回答当内部数组容量不够时,怎么办?
add方法是先判断需要加入新元素的位置是否超过数组容量,如果超过,则先扩大数组容量,使其长度加1。
1.5 分析private void rangeCheck(int index)源代码,为什么该方法应该声明为private而不声明为public?
private修饰可以不被外界任意修改,并且具有隐私性,不被随意调用,该方法只是用来判断给定的索引是否在范围内,有没有越界,外部并不需要访问它,不能修改它。
2.HashSet原理
2.1 将元素加入HashSet(散列集)中,其存储位置如何确定?需要调用那些方法?
计算出带存储的散列码作为存储的位置依据,将对象存入Hash类集合,需要用到hashCode和equals两个方法。
3.ArrayListIntegerStack
题集jmu-Java-05-集合之5-1 ArrayListIntegerStack
3.1 比较自己写的ArrayListIntegerStack与自己在题集jmu-Java-04-面向对象2-进阶-多态、接口与内部类中的题目5-3自定义接口ArrayIntegerStack,有什么不同?(不要出现大段代码)
5-1中使用的是ArrayList数组来存放对象,相当于长度可变的数组,相应的push、pop、peek等方法的编写用到了list中的add、remove等方法;5-3中则是用栈来存放对象,要考虑考虑原先设定的长度,并且要有top指针。
3.2 简单描述接口的好处.
能使整个结构清晰,类之间的通信简单易懂,能够大大提高程序的灵活性以及可维护性。
4.Stack and Queue
4.1 编写函数判断一个给定字符串是否是回文,一定要使用栈,但不能使用java的Stack类(具体原因自己搜索)。请粘贴你的代码,类名为Main你的学号。
4.2 题集jmu-Java-05-集合之5-6 银行业务队列简单模拟。(不要出现大段代码)
5.统计文字中的单词数量并按单词的字母顺序排序后输出
题集jmu-Java-05-集合之5-2 统计文字中的单词数量并按单词的字母顺序排序后输出 (不要出现大段代码)
5.1 实验总结
使用TreeSet,要考虑到字母顺序排序。
7.面向对象设计大作业-改进
7.1 完善图形界面(说明与上次作业相比增加与修改了些什么)
7.2 使用集合类改进大作业
参考资料:
JTable参考项目
3. 码云上代码提交记录及PTA实验总结
题目集:jmu-Java-05-集合
3.1. 码云代码提交记录