《JAVA程序设计》第八周学习总结
一、目录
- 第十五章知识总结
- 遇到的问题及解决方法
- 上周错题总结
- 代码托管
- 感想
二、第十五章知识总结:泛型与集合框架
- 泛型:
- 泛型类声明:可以使用“class 名称<泛型列表>”声明一个类,例如:
class People<E>
- 类名后多了对“<>”,而且必须要用具体的类型替换“<>”中的泛型。
- 声明对象:
- 泛型类声明:可以使用“class 名称<泛型列表>”声明一个类,例如:
Cone
coneOne = new Cone
- 链表:
- LinkedList链表:创建对象以链表结构存储数据
- 创建空链表:`LinkedList mylist = new LinkedList();`
- 使用`add(E obj)`方法依次增加节点
- 使用`get(int index)`方法遍历链表
- 排序与查找 :
1 、升序排序:`public static sort(List list)`
2、折半法查找:`int binarySearch(List list,T key,CompareTo c)`
- 洗牌与旋转 :
1、随机排序:`public static void shuffle(List list)`
2、旋转数据:`static void rotate(List list,int distance)`
3、翻转数据:`public static void reverse(List list)`
- 堆栈 :
- 创建堆栈对象:`Stack`
- 压栈操作:`public E push(E item);`
- 弹栈操作:`public E pop();`
- 判断堆栈是否还有数据:`public boolean empty()`;有数据返回`false`,否则返回`true`。
- 获取堆栈顶端的数据,但不删除该数据:`public E peek()`
- 获取数据在对战中的位置:`public int search(Object data);`
- 散列映射:
- 使用`HashMap<K,V>`泛型类创建的对象称作散列映射。
- 树集:
- `TreeSet`类创建的对象叫做树集。
- 在树集中,按字典顺序从左到右递增,从上到下递减。
- 树映射:
- `TreeMap<K,V>`对象为树映射。
- 树映射的节点可以存储关键字、关键值对。
- 排序时,按照关键字升序排序。
**三、遇到的问题及解决方法:**
- 问题:编译Example15_3时,会出现报错:
![](https://img2018.cnblogs.com/blog/1265430/201904/1265430-20190421170800990-1075946250.png)
- 解决方法:刚开始以为是程序代码打错了,翻书查找原因时,才发现是因为使用了旧版本的LinkedList类,JDK1.5后续版本的编译器会给出警告信息,但程序仍能正常运行。
**四、上周错题总结:**
![](https://img2018.cnblogs.com/blog/1265430/201904/1265430-20190421170815035-1681401796.png)
- 解析:③:要查找本身,需要用\。⑥:注意字符转义,应为""Hello"".matches("(["'])[^"']*\1")。
![](https://img2018.cnblogs.com/blog/1265430/201904/1265430-20190421170823970-701964317.png)
- 解析:查询API。B项:直到索引 endIndex - 1 处的字符。E项:抛出IndexOutOfBoundsException异常。
**五、码云链接:**
https://gitee.com/sgm5/text1/commit/398e41f04f25b6aa6947734e7445a252cc123e64
**六、感想:**
这周学到了很多有用的内容,感觉是很值得的。有些知识点可能略过没能仔细琢磨,敲代码时发现自己其实并未完全掌握,但还是能学到一些知识,通过课上的测试反馈出来的问题漏洞有很多,看完教材感觉自己会了,但在做题过程中一些概念定义还是模棱两可,不太牢固,还是应多将理论运用到实际。
**七、PSP**
| 周数 | 代码行数(新增/累积) |博客量(新增/累积) | 学习时间(新增/累积)|重要成长|
|---------| ------ | ------ | ------|----------|
|目标| 5000行| 30篇 |400小时| |
|第八周|1187/4057|2/12| 18/110 | |