zoukankan      html  css  js  c++  java
  • 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. 码云代码提交记录

  • 相关阅读:
    用wamp配置的环境,想用CMD连接mysql怎么连
    Mysql删除表
    MySQL创建表
    Leetcode 130. Surrounded Regions
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 110. Balanced Binary Tree
    Leetcode 98. Validate Binary Search Tree
    Leetcode 99. Recover Binary Search Tree
    Leetcode 108. Convert Sorted Array to Binary Search Tree
    Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal
  • 原文地址:https://www.cnblogs.com/yytx/p/6715407.html
Copyright © 2011-2022 走看看