zoukankan      html  css  js  c++  java
  • 学号:201521123116 《java程序设计》第八周学习总结

    1. 本周学习总结

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

    1.2 选做:收集你认为有用的代码片段

    List<Entry<String,Integer>> list = new ArrayList<Entry<String,Integer>>(map.entrySet());

    Scanner in = new Scanner(line);

    2. 书面作业

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

    1.1 实验总结:

    • 返回的数组元素类型是Object,调用者可以自由地修改iterator返回的数组。
    • 用列表来实现排序。
    • 扫描器可以用做遍历使用。

    1.2 截图你的提交结果(出现学号)

    2.统计文字中的单词数量并按出现次数排序

    Scanner input=new Scanner(System.in);
    Map<String,Integer>map=new HashMap<String ,Integer>();
    String x;
    while(true){
    x=input.next();
    if(x.equals("!!!!!"))break;

    if(map.containsKey(x)) map.put(x, map.get(x)+1);
    if(map.get(x)==null) map.put(x, 1);
    }
    System.out.println(map.size());
    List<Entry<String,Integer>> list =new ArrayList<Entry<String,Integer>>(map.entrySet());
    Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
    public int compare(Map.Entry<String, Integer> o1,Map.Entry<String, Integer> o2) {
    if (o1.getValue() != o2.getValue()) {
    return o2.getValue() - o1.getValue();
    }
    else {
    return o1.getKey().compareTo(o2.getKey());
    }
    }
    });

    for(int i=0;i<10;i++){
    System.out.println(list.get(i));

    2.2 实验总结

    TreeSet类实现Set接口,不含重复对象.将map对象转变为list对象,用entrySet()同时取得map的键和值

    3. 倒排索引(题目5-4)

    3.1 截图你的提交结果(出现学号)

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


    int row = 1;
    while (scan.hasNextLine()) {
    String s = scan.nextLine();
    if (s.equals("!!!!!")) {
    break;
    }
    else {
    Scanner scan1 = new Scanner(s);
    map2.put(row, s);
    while (scan1.hasNext()) {
    String s1 = scan1.next();
    if (map.get(s1) == null) {
    TreeSet<Integer> set = new TreeSet<Integer>();
    set.add(row);
    map.put(s1, set);
    }
    else {
    map.get(s1).add(row);
    }
    }
    scan1.close();
    }
    row++;
    }
    for (Map.Entry<String, TreeSet<Integer>> a : map.entrySet()) {
    System.out.println(a);
    }

    if (!map.containsKey(s)) {
    System.out.println("found 0 results");
    continue;
    }
    TreeSet<Integer> set1 = map.get(s);
    while (scan1.hasNext()) {
    String s1 = scan1.next();
    set1.retainAll(map.get(s1));

    3.3 实验总结

    对于Map的运用还不熟练,这道题目还是在同学帮助下完成的。

    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中调用,然后输出结果。

    ArrayList<Student> aList = new ArrayList<Student>();

    for (Student student : arrayList) {

    if (student.getId() > 10L && student.getName().equals("guo")

    student.getAge() > 20

    student.getGender().equals(Gender.女)

    student.isJoinsACM())

    aList.add(student);

    }

    }

    return aList2、;

    }

    代码运行不出

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

    ArrayList list1=(ArrayList) list.stream().filter(e->

    (e.getId()>10L&&e.getAge()>20&&e.getGender().equals(gender1)&&e.isJoinsACM()==true)).collect(Collectors.toList());

    list1.forEach(e->System.out.println(e));

    结果:

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

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

     

    5.2 GeneralStack接口的代码

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

     5.3 结合本题,说明泛型有什么好处

    泛型后不限制元素类型,无须再强制类型转化,减少程序出错的机会

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

    3.1. 码云代码提交记录

  • 相关阅读:
    产品开源了(discuz!nt 2.0),顺便将前些时候发的文章做个总结
    一个曾经的"愤青梦"弥衡
    推荐两个web菜单控件(右击和顶部主菜单)
    一本晚看了两年半的书蓝海战略
    Discuz!NT 在线用户功能简介
    我的2007
    ajax.net调用session和cookie
    最新(2010年)搜索引擎优化(SEO)专家工具集合
    Android学习资料大全
    基于.net的aop实现技术
  • 原文地址:https://www.cnblogs.com/gysbettrer/p/6715479.html
Copyright © 2011-2022 走看看