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

    1. 本周学习总结

    2. 书面作业

    Q1.List中指定元素的删除(题目4-1)
    Q1.1 实验总结
    用split(" ")方法将list转化为字符串数组。要注意行中含有多个空格的情况。用remove移除时如果使用remove(list.get(i))来移除时,要注意移除时单词位置会随着移除而改变,所以要再加上i--。

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

    while (in.hasNext())
    {
           String str = in.next();
           if(str.equals("!!!!!"))
                break;
           strSet.add(str);
    }   
    
    
    if (strSet.size() <= 10)
    for (String s : strSet) 
    {
            System.out.println(s);
     }
    else{
             int m=10;
             for (String s : strSet) 
               {
                    if (m-- <= 0)
                        break;
                    System.out.println(s);
                }
         }
    

    Q2.2 实验总结
    将map转换为list是之前遇到的瓶颈,需要用entrySet()同时取得map的键和值,然后用Collections.sort的匿名内部类进行对list的排序。

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

    Q3.2 伪代码(简单写出大体步骤)

    int num=1;
    while(in.hasNextLine()){
    String str=in.nextLine();
    if(str.equals("!!!!!"))
        break;
    else{
        String[] str1=str.split(" ");
        map.put(num, str);
        for(){
            if(strMap.containsKey(str1[i]))
                set=strMap.get(str1[i]);
            set.add(num);
            strMap.put(str1[i], set);
        }
        num++;
        }
    }
    
    

    Q3.3 实验总结
    主要是HashMap的使用,存放类型改为ArrayList,排序的方式还是转化为list之后再使用匿名内部类来实现Comparato接口进行排序,主要是查找的功能实现,是用出现查找的单词(句子出现的)来确定行数,再用该行数出现的次数来确定输出(例如查找you are,you=[1, 4, 5] 出现在第1,4,5行,而are=[1, 4, 5]也出现在第1,4,5行,出现第1,4,5的次数=单词数=2,所以输出第1, 4, 5行的句子),若无查找到,则输出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对象用于后面的测试。
    Q4.1 使用传统方法编写一个方法,将id>10,name为zhang, age>20, gender为女,参加过ACM比赛的学生筛选出来,放入新的集合。在main中调用,然后输出结果。

    Q4.2 使用java8中的stream(), filter(), collect()编写功能同4.1的函数,并测试。

    ArrayList<Student1> List1 = (ArrayList<Student1>) List.stream()
        .filter(Student1 -> (Student1.getId() > 10&& Student1.getName().equals("zhang")
            && Student1.getAge() > 20 && 
            Student1.getGender().equals(Gender.female)
        && Student1.isJoinsACM()))
        .collect(Collectors.toList());
    

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

    Q5.泛型类:GeneralStack(题目5-5)
    Q5.1 截图你的提交结果(出现学号)
    不会写..........
    Q5.2 GeneralStack接口的代码
    Q5.3 结合本题,说明泛型有什么好处

    Q6.泛型方法
    基础参考文件GenericMain,在此文件上进行修改。
    Q6.1 编写方法max,该方法可以返回List中所有元素的最大值。List中的元素必须实现Comparable接口。编写的max方法需使得String max = max(strList)可以运行成功,其中strList为List类型。也能使得Integer maxInt = max(intList);运行成功,其中intList为List类型。

    public static <T extends Comparable<T>> T max(List<T> list){
            
            Collections.sort(list);
            T max = list.get(list.size()-1);
            return max;
    }
    

    Q6.2 选做:现有User类,其子类为StuUser,且均实现了Comparable接口。编写方法max1,基本功能同6.1,并使得max1(stuList);可以运行成功,其中stuList为List类型。

    private static <T extends StuUser> T max1(List<T> stuList) {
    
            Collections.sort(stuList,new StuUserComparator());               
            T max = stuList.get(stuList.size()-1);
            return max;
    }
    

    Q6.3 选做:编写int myCompare(T o1, T o2, Comparator c)方法,该方法可以比较User对象及其子对象,传入的比较器c既可以是Comparator,也可以是Comparator。注意:该方法声明未写全,请自行补全。

    Q7.选做:逆向最大匹配分词算法
    集合实验文件中的第07次实验(集合).doc文件,里面的题目6.
    Q7.1 写出伪代码
    Q7.2 实验总结

    Q8.选做:JavaFX入门
    完成其中的作业1、作业2。内有代码,可在其上进行适当的改造。建议按照里面的教程,从头到尾自己搭建。

    3. 码云上代码提交记录及PTA实验总结

    题目集:jmu-Java-05-集合

    3.1. 码云代码提交记录

    在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

    3.2. PTA实验

    函数(4-1),编程(5-3,5-4,5-5)
    实验总结已经在作业中体现,不用写。

  • 相关阅读:
    ANDROID笔记:shape的简单使用
    ANDROID笔记:根据长宽实现图片压缩
    ANDROID笔记:PopupMenu的用法
    ANDROID笔记:AdapterContextMenuInfo在ListView中的用法
    ANDROID笔记:利用XML布局文件生成Menu
    ANDROID笔记:ContextMenu的用法
    ANDROID笔记:JSON和Adapter的使用
    ANDROID笔记:Dialog的几种用法
    ANDROID笔记:AdapterViewFlipper和ViewFlipper的简单使用
    #2020征文-开发板# 用鸿蒙开发AI应用(一)硬件篇
  • 原文地址:https://www.cnblogs.com/ll321/p/6715135.html
Copyright © 2011-2022 走看看