201521123028 《Java程序设计》第8周学习总结

时间:2023-12-09 16:00:01

1. 本周学习总结

201521123028 《Java程序设计》第8周学习总结

2. 书面作业

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

1.1 实验总结

Ans:

在这一题中我们需要写两个函数,分别是remove()和convertStringToList()。

①:remove的作用是需要我们输入一个单词,然后遍历list,将其中与输入单词相同的字符串删除。

具体方法是使用for循环对list进行遍历,判断相同时使用的是list.equals方法,删除字符串使用的是list.remove方法。

②:convertStringToList主要作用就是将输入(line)转换类型为List后输出给list。

1.2提交结果

201521123028 《Java程序设计》第8周学习总结

Q2.统计文字中的单词数量并按出现次数排序(题目5-3)

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

new map(String,Integer)                //创建一个新的Map类,key为String型,value为Interger型
str=in.next();
while(!str.equals("!!!!!")) //出现"!!!!!"的时候结束
if(!map.containsKey(str)) map(str,1) //当str对应的key不存在时,新建一个map(str,1),value为1
else map(str,value+1) //当str对应的key存在时,value值在原来的基础上+1
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() //使用匿名内部类对map进行排序
System.out.println(map.size())
for(i=0;i<10;i++) {System.out.println(list.get(i));}

2.2 实验总结

这一题的难点应该是按照单词出现频率排序,

那么我们就使用Map类来存储一段英文中的单词(key)和出现频率(value)。

然后需要使用匿名内部类实现copareTo接口,进而实现先频率,后单词的排序方法。

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

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

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

new map1(String,Set),map2(String,Integer)
while(!s.equals("!!!!!"))
map1.put(s1,set);map2.put(s1,r);
for (map1遍历) {System.out.println(a);}
set1.retainAll(map1.get(s1))
System.out.println("line " + a + ":" + map2.get(a));

3.3 实验总结

这一题看不太懂,所以不太会做,不过感觉主要思路还是在map之中存放单词信息和所在行的信息,请教了一下做出来的同学。

就是不太能弄的清楚

201521123028 《Java程序设计》第8周学习总结

这里使用了map1和map2,我也不太懂得map2是用来干什么的。。。

Q5.泛型类: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. 码云代码提交记录

201521123028 《Java程序设计》第8周学习总结

3.2. PTA实验

函数(4-1),编程(5-3,5-4,5-5)

实验总结已经在作业中体现,不用写。