20175205 2018-2019-3 《Java程序设计》第八周学习总结
教材学习内容总结
教材学习中的问题和解决过程
Q:教材例子2中System.currentTimeMillers()
A:
Q:教材例子2中iter.hasNext()
和iter.next()
A:
Q:教材例子3中将LinkedList改为ArrayList
A:动手实践了一下,发现两种输出结果是一样的。
数组和链表的区别:
- 不同:链表是链式的存储结构;数组是顺序的存储结构。
- 链表通过指针来连接元素与元素,数组则是把所有元素按次序依次存储。
- 链表的插入删除元素相对数组较为简单,不需要移动元素,且较为容易实现长度扩充,但是寻找某个元素较为困难;
- 数组寻找某个元素较为简单,但插入与删除比较复杂,由于最大长度需要再编程一开始时指定,故当达到最大长度时,扩充长度不如链表方便。
- 相同:两种结构均可实现数据的顺序存储,构造出来的模型呈线性结构。
Q:教材例子7中涉及到了很多没学过的窗口知识
A:JTextField —— 建立单行文本框
**JTextField的方法:public void setText(String t) **
**HashMap的方法:public V put(K key, V value) **
**ActionEvent的方法:public String getActionCommand() **
Q:为什么使用迭代器便利链表
A:迭代器遍历在找到集合中的一个对象的同时,也得到待遍历的后继对象的引用,因此迭代器可以快速地遍历集合。
代码调试中的问题和解决过程
Q:教材例子9,compareTo方法返回时为什么要*1000
A:还没有解决。。。
代码托管
总结
数组
- 数组是最最基本的数据结构,很多语言都内置支持数组。数组是使用一块连续的内存空间保存数据,保存的数据的个数在分配内存的时候就是确定的:
- 因此在查找某个元素的时候,只能遍历数组;在插入或删除元素的时候,如果不是在尾部进行操作,那么就要将该位置之后的元素全部移动,工作量很大。
链表
- 链表是在非连续的内存单元中保存数据,并且通过指针将各个内存单元链接在一起,最有一个节点的指针指向 NULL 。链表不需要提前分配固定大小存储空间,当需要存储数据的时候分配一块内存并将这块内存插入链表中。
- 插入删除数据比较方便,只需要调整指针即可
堆栈
- 对于堆栈中的数据的所有操作都是在栈的顶部完成的,只可以查看栈顶部的数据,只能够向栈的顶部压入数据,也只能从栈的顶部弹出数据。