201621123041java程序设计第九周学习总结

1. 本周学习总结

1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容。

2. 书面作业

1. List中指定元素的删除(题集题目)

1.1 实验总结。并回答:列举至少2种在List中删除元素的方法。

  • 本题实验要注意使用split语句时,如果要求一个或多个空格为分隔符时,要使用line.split(" +");

  • 可以使用remove函数来删除元素,也可以使用迭代器iterator的方法。

2. 统计文字中的单词数量并按出现次数排序(题集题目)

2.1 伪代码(不得复制代码,否则扣分)

  • 运用HashMap来储存数据,再使用equals来查询文中是否出现“!!!!!”,再使用split("\\s+")来筛选文中的字段,使用containsKey()来比较文中字段,最后输出。

2.2 实验总结

  • 本题要注意不要使用split(" +"),否则系统会报错,因为此表达式无法适应所有文章输入情况。

3. 倒排索引(题集题目)

3.1 截图你的代码运行结果

  • 代码真的不会写。就就截图一部分

3.2 伪代码(不得复制代码,否则扣分)

  • 1.使用TreeMap映射,Map<String,ArrayList<Integer>> word=new TreeMap<String,ArrayList<Integer>>()。 2.创建ArrayList数组,将元素输入。3.输出单词所存在的字段数。 4.判断输入的单词行数,输出段数。

3.3 实验总结

  • 本题主要使用了TreeMap映射,把输入的数据存储到ArrayList中,遍历查找出所有单词段落。在统计单词的时候,需要逐段读取,并用空格对单词进行区分,因为后面需要对单词所在行数查询。

4.Stream与Lambda

4.1 使用传统方法编写一个搜索方法List search(List 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而不是抛出异常。(截图:出现学号)

public Student search()
{
if(list.stream().filter(Student.getId()>=2016L&&Student.getName().equalsIgnoreCase("Lin")&&Student.getAge()>18&&Student.getGender()==Gender.Male).collect(Collectors.toList()).forEach(System.out::println)😉
{
Student s=new Student(this.id,this.name,this.age,this.gender,this.joinsACM);
return s;
}
else
return null;
}
}
public class MMMMMM {

public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList list=new ArrayList();
Student s1 = new Student(2017L,"WANG",23,Gender.Male,true);
Student s2 = new Student(2018L,"lin",51,Gender.Male,true);
Student s3 = new Student(2016L,"li",32,Gender.Male,true);
Student s4 = new Student(2017L,"林裕恒",19,Gender.Male,true);
Student s5 = new Student(2016L,"Lin",28,Gender.Male,false);
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
for (Student student : list) {

    System.out.println(student.search());
}
System.out.println("林裕恒201621123041");

}

5. 泛型类:GeneralStack

5.1 GeneralStack接口的代码

5.2 结合本题与以前作业中的ArrayListIntegerStack相比,说明泛型有什么好处。

  • 对于GeneralStack这道题来说,定义的泛型接口不仅能够用于Integer类型,也能用于Double类型,泛型对任何引用类型都适用。

3.码云及PTA

3.1. 码云代码提交记录

3.2 截图PTA题集完成情况图

3.3 统计本周完成的代码量

周次 总代码量 新增代码量 总文件数 新增文件数
5 221 221 4 4
6 487 226 10 6
7 837 350 14 4
8 1057 220 17 3
9 1289 232 21 4
10 1654 365 26 5

4. 评估自己对Java的理解程度

语法 PTA基础题目可以胜任
面向对象设计能力 无法能熟练使用面向对象思想为所要解决的问题建模
应用能力 不能使用Java编写一些实用的小工具
至今为止代码行数 3000左右,因为有些代码没有记录
posted @ 2017-11-18 12:07  网络1612林裕恒  阅读(204)  评论(2编辑  收藏  举报