1. 本周学习总结
1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容。
2. 书面作业
本次作业题集集合
1. List中指定元素的删除(题集题目)
1.1 实验总结。并回答:列举至少2种在List中删除元素的方法。
(1)
在用for循环add进去元素之后,接下来的remove操作中,其本身会将被删除的下一位元素都会依次向前填充,所以需要在list进行remove操作完之后进行i--,这样可以使每个元素都得遍历。
(2)
而如果重后头遍历,在进行remove操作之后list数组不用进行向前填充,所以不需要进行i--。
2. 统计文字中的单词数量并按出现次数排序(题集题目)
2.1 伪代码(不得复制代码,否则扣分)
1.创建一个TreeMap的对象map,然后输入逐次输入str,并判断如果该str不存在就将它put入str中,并将键值初始化为1,反之,获得str的相应键值并+1存入map中。
2.创建一个List<Entry<String , Integer>>的对象list,并吧map的元素放入list当中。
3.使用Collections.sort对数组进行自定义排序
4.输出ma\'p的size和list中的每一个map
2.2 实验总结
利用TreeMap进行存储,因为一般来说TreeMap不会存储重复的元素,而且时实现自动排序。
3. 倒排索引(题集题目)
本题较难,做不出来不要紧。但一定要有自己的思考过程,要有提交结果。
3.1 截图你的代码运行结果
3.2 伪代码(不得复制代码,否则扣分)
1.创建一个HashMap;
2.然后构造一个List<Entry<String , Set<Integer>>>
的对象list用来存储map中的元素;
3.如果加入 的key在map中不存在,则将它放入map中并将当前行数输入到value中;
4.之后用foreach循环输出list中的元素的行数。
3.3 实验总结
要将map中的value值定义为ArrayList类型,这样可以存储单词行数。
4.Stream与Lambda
编写一个Student类,属性为:
private Long id; private String name; private int age; private Gender gender;//枚举类型 private boolean joinsACM; //是否参加过ACM比赛
创建一集合对象,如List
4.1 使用传统方法编写一个搜索方法List<Student> search(List<Student> stuList, Long id, String name, int age, Gender gender, boolean joinsACM)
,然后调用该方法将id>某个值,name为某个值, age>某个值, gender为某个值,参加过ACM比赛的学生筛选出来,放入新的集合。在main中调用,然后输出结果。(截图:出现学号、姓名)
4.2 使用java8中的stream(), filter(), collect()编写功能同4.1的代码,并测试(要出现测试数据)。构建测试集合的时候,除了正常的Student对象,再往集合中添加一些null,你编写的方法应该能处理这些null而不是抛出异常。(截图:出现学号)
测试数据:
输出结果:
5. 泛型类:GeneralStack
题集jmu-Java-05-集合之GeneralStack
5.1 GeneralStack接口的代码
5.2 结合本题与以前作业中的ArrayListIntegerStack相比,说明泛型有什么好处
泛型的所有对象均为is-object,其存储内部也仅仅时是object;
与ArrayListIntegerStack
相比,泛型的类型更加安全,并且可以消除强制类型的转换,而且在编写代码时,能有更高的效率。
3.码云及PTA
题目集:jmu-Java-05-集合
3.1. 码云代码提交记录
在码
云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
3.2 截图PTA题集完成情况图
需要有两张图(1. 排名图。2.PTA提交列表图)
3.3 统计
本周完成的代码量
|周次|总代码量|新增代码量|总文件数|新增文件数||
|-
以上是关于作业09-集合与泛型的主要内容,如果未能解决你的问题,请参考以下文章