Despite the sufferring from the former disc04 ,i get the golden rule of extended classes' type discrmination ,that is , in a 赋值过程中,在类型层级上,右边的一定要小于左边的。(你可以把小的类型的塞进大的类型中去)。
lab4 是一个讨论课,讨论主题是之前的proj1a的内容
获取需要的文件
As before, pull the skeleton using the command git pull skeleton master.
In the skeleton, we have provided the following files:
PalindromeFinder.java
: Class that helps identify generalized Palindromes in English.
CharacterComparator.java
: An interface for comparing characters.
TestPalindrome.java
: A class for JUnit tests for Palindrome.
TestOffByOne.java
: A class for JUnit tests for OffByOne.
In addition you will create the following files:
Palindrome.java
: A class for palindrome operations.
OffByOne.java
: A class for off-by-1 comparators.
OffByN.java
: A class for off-by-N comparators.
You’ll also need to cd into your library-sp18 folder. Once you’re there, use git pull origin master. If everything works as it should, you should see file called words.txt appear in the library-sp18/data folder.
In summary, these should be the shell commands to use:
Additional Optional Manual Download
本节需要ArrayDeque
或者是LinkedListDeque
,如果你没有,可以点击这里下载 :下载链接,2025年一月还好用。
任务1 Deque Interface/ Deque接口
创建一个 Deque.interface
,包含ArrayDeque
和LinkedListDeque
里所有方法, 这个链接有具体内容: project 1a spec,(idea中默认创建class,记得选接口),Deque必须是接受泛型的接口,建立好之后,去到ArrayDeque
和LinkedListDeque
,让两个类实现Deque, implements Deque<T>
,T是什么可以自选,然后添加@Override,这在CS61B中必须,希望也成为你的java 必须。
如果你用了前面 课程提供的
LinkedListDeque
,那得这么写类定义public class LinkedListDeque<Item> extends LinkedList<Item> implements Deque<Item>
任务2 wordToDeque /
新建一个Palindrome.java
文件,并加入下面一条语句:
public Deque<Character> wordToDeque(String word){return null;}
输入一个字符串,wordToDeque 应返回一个双端队列,其中字符的出现顺序与字符串中的顺序相同。例如,如果单词是“persiflage”,那么返回的双端队列应该在前面有“p”,后面是“e”,依此类推。
Uncomment TestPalindrome 中的代码并运行文件中包含的测试(例如,右键单击它并选择“运行 TestPalindrome”)。现在应该无法通过所提供的测试。目标是通过正确实现 wordToDeque 通过此测试。通过测试后,请继续完成本作业的下一部分。确保你没有删除奇怪的行static Palindrome palindrome = new Palindrome();
。它对于本次作业任务没有用,但稍后会需要。
提示:搜索网络以了解如何获取字符串中的第 i 个字符。
提示:将字符插入 Deque<Character>
和将整数插入 LinkedListDeque<Integer>
类似。
提示:testWordToDeque 的细心读者可能想知道为什么我们不直接创建一个正确的 Deque
,然后调用 assertEquals
。原因是我们的 Deque
类没有提供 equals
方法,因此它不会按您期望的方式工作。我们很快就会在课堂上讨论这个问题。