zoukankan      html  css  js  c++  java
  • 201621123078《Java程序设计》第9周学习总结

    1. 本周学习总结

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

    2. 书面作业

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

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

    Answer:
    1、for循环遍历list

    for(int i=0;i<list.size();i++){
        if(list.get(i).equals("del"))
            {list.remove(i);
            i--;}
    }
    

    ps:这种方法适合在删除特定的一个元素时使用,不适合循环删除多个元素。

    2、增强for循环

    for(String x:list){
        if(x.equals("del"))
            list.remove(x);
    }
    

    ps:这种循环在删除元素后会继续循环报错,因为元素在使用后会被修改,导致异常,如果删除后break,就不会报错。

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

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

    while(判断输入值不为空)
        if(输入的元素为"!!!!!")
          跳出循环break;
        while(判断输入值不为空)
        {if 把输入的单词存在map,再+1
          else 把该单词作为新的key并把值+1
        }
    输出map,用Collections接口对map排序。
    输出list前十个元素;
        
    

    2.2 实验总结

    Answer:把单词元素都存储到map中去,再判断map中是否含有这个单词,如果有,map中的value+1;否则将单词加入map,value置为1。

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

    3.1 截图你的代码运行结果

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

    while(判断输入值不为空)
        if(输入的元素为"!!!!!")
          跳出循环break;
    存入元素到word;
    遍历word;
         if没有对应的key在map
         添加单词到map中,并存储行数
        打印前十个值
        输入关键字
        遍历
    if (某行包含关键字)
            在集合中加入行号
    输出元素所在行数;
    
    else 打印"found 0 results";
          
        
    

    3.3 实验总结

    4.Stream与Lambda

    编写一个Student类,属性为:

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

    创建一集合对象,如List,内有若干Student对象用于后面的测试。

    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而不是抛出异常。(截图:出现学号)
    ArrayList<Student> arrayList2 = (ArrayList<Student>) arrayList.parallelStream()
        .filter(student -> (student.getId() > 201621123077L && student.getName().equals("吕炜彬")
                && student.getAge() > 3 && 
                student.getGender().equals(Gender.male)
                && student.isJoinsACM()))
        .collect(Collectors.toList());
    

    5. 泛型类:GeneralStack

    5.1 GeneralStack接口的代码

    interface GeneralStack<T>{
         E push(E item);
         E pop();
         E peek();
        public boolean empty();
        public int size();
    }
    

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

    Answer:

    1. 类型安全
    2. 消除强制类型转换
    3. 潜在的性能收益
      相比较之前的ArrayListIntegerStack,运用了泛型,用了GeneralStack接口,相比较以前的IntegerStack接口只能用于存放Integer类型的数据,泛型更灵活,使用与更过类型的数据。

    3.码云及PTA

    3.1. 码云代码提交记录

    3.2 截图PTA题集完成情况图


    3.3 统计本周完成的代码量

    周次 总代码量 新增代码量 总文件数 新增文件数
    1 0 0 0 0
    2 280 280 5 5
    3 530 250 9 4
    4 950 420 15 6
    5 1345 395 20 5
    6 1924 579 26 6
    7 2248 324 31 5
    8 2677 429 36 5
    9 3020 343 42 6

    目标估计能够实现,争取达到。

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

    维度 程度
    语法 pta上的题目还不是都能写出,语法还是有些困难,需要同学的帮助
    面向对象设计能力 这一方面还是有些困难,不够熟练
    应用能力 自己要编写小程序还是有些就困难
    至今为止代码行数 大概3000
  • 相关阅读:
    VS2012打包部署Winform程序
    WPF 触发器Triggers
    VS2010中的顺序图
    decimal,float和double的区别
    EXCEL基本知识
    java byte 循环左移 循环右移 rotateLeft rotateRight
    博客地址转移
    PHP学习思维导图
    一款web前端在线编辑器
    9patch android .9格式使用
  • 原文地址:https://www.cnblogs.com/helloLV/p/7856628.html
Copyright © 2011-2022 走看看