《JAVA程序设计》第八周学习总结
一、目录
- 第十五章知识总结
- 遇到的问题及解决方法
- 上周错题总结
- 代码托管
- 感想
二、第十五章知识总结:泛型与集合框架
- 泛型:
- 泛型类声明:可以使用“class 名称
<泛型列表>
”声明一个类,例如:
class People<E>
泛型列表> - 类名后多了对“<>”,而且必须要用具体的类型替换“<>”中的泛型。
- 声明对象:
Cone<Circle> coneOne; coneOne = new Cone<Circle>(new Circle());
- 泛型类声明:可以使用“class 名称
<泛型列表>
”声明一个类,例如:
- 链表:
- 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时,会出现报错:
- 解决方法:刚开始以为是程序代码打错了,翻书查找原因时,才发现是因为使用了旧版本的LinkedList类,JDK1.5后续版本的编译器会给出警告信息,但程序仍能正常运行。
四、上周错题总结:
- 解析:③:要查找\本身,需要用\。⑥:注意字符转义,应为""Hello"".matches("(["'])[^\"']*\1")。
- 解析:查询API。B项:直到索引 endIndex - 1 处的字符。E项:抛出IndexOutOfBoundsException异常。
五、码云链接:
https://gitee.com/sgm5/text1/commit/398e41f04f25b6aa6947734e7445a252cc123e64
六、感想:
这周学到了很多有用的内容,感觉是很值得的。有些知识点可能略过没能仔细琢磨,敲代码时发现自己其实并未完全掌握,但还是能学到一些知识,通过课上的测试反馈出来的问题漏洞有很多,看完教材感觉自己会了,但在做题过程中一些概念定义还是模棱两可,不太牢固,还是应多将理论运用到实际。
七、PSP
周数 | 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第八周 | 1187/4057 | 2/12 | 18/110 |