• 201521123108 《Java程序设计》第八周学习总结


    1. 本周学习总结

    2. 书面作业

    Q1.List中指定元素的删除(题目4-1)
    1.1 实验总结
    答:主要是应用到了list中的add和remove等方法,dan'sh但是这道题主要的考察点在于list的删除方式,如果在表头删除那么所有元素都会前移,这时就不会按照我们所想的去删除掉nmou'g某个元素;因此我们应当在list的尾部进行删除。

    Q2.统计文字中的单词数量并按出现次数排序(题目5-3)
    2.1 伪代码(简单写出大体步骤)
    答:

    if(map.containsKey(x))
     map.put(x, map.get(x)+1);
    if(map.get(x)==null)
     map.put(x, 1);
    

    2.2 实验总结
    答:主要是用到了map(),把单词放到本题主要有两个比较的属性,单词(str)key和次数(number)value,因此用HashMap,来实现输入。

    Q3.倒排索引(题目5-4)
    3.1 截图你的提交结果(出现学号)
    答:

    3.2 伪代码(简单写出大体步骤)
    答:

    建立一个map(String,Integer);
    遍历所有的单词;
    for循环遍历时找到目标单词;
    if(isEmpty)
        return null
    else
        println(set)
    

    3.3 实验总结
    答:还是涉及到Map的使用,通过使用TreeMap进行排序;而用匿名内部类来实现Comparato接口进行排序,然后就是查找句子,用出现查找的单词来确定行数,根据该行数出现的次数来确定输出,行数的次数=单词数,输出,否则输出found 0 results。

    Q4.Stream与Lambda
    编写一个Student类,属性为:

    private Long id;
    private String name;
    private int age;
    private Gender gender;//枚举类型
    private boolean joinsACM; //是否参加过ACM比赛
    

    创建一集合对象,如List,内有若干Student对象用于后面的测试。
    4.1 使用传统方法编写一个方法,将id>10,name为zhang, age>20, gender为女,参加过ACM比赛的学生筛选出来,放入新的集合。在main中调用,然后输出结果。
    答:

    4.2 使用java8中的stream(), filter(), collect()编写功能同4.1的函数,并测试。
    答:

        List<Student> result=student.stream().filter(stu-> stu.getId() > 10L && stu.getName().equals("zhang")
                && stu.getAge() > 20 &&
                stu.getGender().equals(Gender.FEMALE)
                && stu.isJoinsAcm())
                .collect(Collectors.toList());
    

    结果为:

    Student{id=102, name='zhang', age=21, gender=FEMALE, joinsAcm=true}]
    

    4.3 构建测试集合的时候,除了正常的Student对象,再往集合中添加一些null,然后重新改写4.2,使其不出现异常。
    答:

    List<Student> result=student.stream().filter(stu-> stu!=null&&stu.getId() > 10L && stu.getName().equals("zhang")
                && stu.getAge() > 20 &&
                stu.getGender().equals(Gender.FEMALE)
                && stu.isJoinsAcm())
                .collect(Collectors.toList());
    

    Q5.泛型类:GeneralStack(题目5-5)
    5.1 截图你的提交结果(出现学号)
    答:

    5.2 GeneralStack接口的代码
    答:

    interface GeneralStack
    {
        public  Object push(Object item);          
        public  Object pop();              
        public  Object peek();                
        public boolean empty();
        public int size();     
    }
    

    5.3 结合本题,说明泛型有什么好处
    答:在学泛型之前,我只知道类和方法只能使用具体的类型。当需要多种类型的方法和类时,必须重写。以实验5来说,以前IntegerStack接口只能用于存放Integer类型的数据,但运用泛型的知识,写了通用的GeneralStack接口,对任何引用类型的数据都适用。

    3.1. 码云代码提交记录

  • 相关阅读:
    【WPF】 Prism 框架中,TabControl 作为Region时如何设置Header
    【WPF】将控件事件中的参数,传递到ViewModel中
    WPF 一种带有多个子集的类ComBox 解决方法
    WPF TabControl美化
    【WPF】 问题总结-RaidButton修改样式模板后作用区域的变化
    C# 打开Excel文件
    获取文件夹下所有的文件名
    访问需要HTTP Basic Authentication认证的资源的c#的实现 将账号密码放入url
    第十三章 建造者模式(Builder)
    第十二章 外观模式 (Facade)
  • 原文地址:https://www.cnblogs.com/yytx/p/6715407.html
Copyright © 2020-2023  润新知