我有一个链表问题源于我即将发布的这个作业提示。它可能有助于回答:
细节
Java String 类是不可变的(您不能更改内容)。这有时会妨碍您对字符串执行的操作(即更改现有字符串)。因此,对于这个作业,您将创建一个名为 MutableString 的类。注意/免责声明:Java API 确实有一个 StringBuffer 类,它是可变的,但是出于本作业的意图和目的,我们会假装我们不知道它;-)
An object of the MutableString class contains the following operations/behaviors -- which means the class itself must contain the following methods:
Character charAt(int index): returns the Character at the specified index in the string -- if the index lies outside the string, throw a MutableStringIndexOutOfBoundsException (you must write this class)
void set(int index, Character ch): replaces the existing Character at the specified location -- if the index lies outside the string throw a MutableStringIndexOutOfBoundsException
void add(int index, Character ch): creates a new spot in the list for the Character at the index specified -- if the index lies outside the string throw a MutableStringIndexOutOfBoundsException
Character remove(int index): removes the Character at specified index -- if the index lies outside the string, throw a MutableStringIndexOutOfBoundsException
boolean remove(Character ch): removes the first occurrence (starting from the beginning of the MutableString) of the Character -- if the Character is not found, return false
boolean removeAll(Character ch): removes all occurrences of the specified Character -- if Character is not found, return false
void toUpper(): converts the current string to all upper case
void toLower(): converts the current string to all lower case
MutableString substring(int start, int finish): returns a string starting at the Character specified by start and concluding with the Character specified by finish -- if start or finish is outside the the string, throw a MutableStringIndexOutOfBoundsException
char [] toCharArray(): returns a char array containing all the characters in the string -- be sure and handle all cases
int length(): reports/returns the length of the string
String toString(): returns a String containing all the Characters
String toReverseString(): returns a String containing all the Characters in reverse order -- you must utilize recursion to accomplish this task
int compareTo(MutableString that): allows comparison of two MutableString objects -- this implies you will implement the Comparable interface for your MutableString class
void sort(): alphabetizes the letters in case-insensitive fashion in ascending order -- you must write the code for this sort (no API calls are allowed)
您必须使用链表来表示字符串的字符(您必须编写 LinkeList 类)。您的 LinkedList 类应包含用于更新和修改列表的基本操作。考虑到这一点,在 Java API 中实现 List 接口。对于您认为对 LinkedList 的功能而言不必要的方法,将这些方法存根并抛出一个异常,其中包含有关调用了什么方法以及尚未实现的信息的异常。注意:确保你的 LinkedList 类没有做任何 MutableString 特定的事情。随意使用以下已删除的 LinkedList 类来完成您的作业。它可能不包含您需要的所有方法,但它确实包含来自 Java API 的 List 接口的方法。
MutableString 必须尽可能利用 LinkedList 行为(方法)(不要在 MutableString 中编写与 LinkedList 类中的内容相同的代码)。因此,您的 MutableString 将包含一个引用 LinkedList 对象的字段。顺便说一句,这个概念被称为委托,这是软件工程和设计中非常重要的概念。不要将 MutableString 设计为继承自 LinkedList。
MutableString 的每个节点都应该包含一个字符——请注意,这并不意味着对节点类中数据的引用应该/必须是字符类型——这会使你的 LinkedList 类特定于 MutableString,我们不希望在这种情况下。
**我不明白的部分是上面的第 2 段,它谈到了从链表类继承。我一直习惯于编写诸如 public class MutableString extends LinkedList 之类的东西,但我们不能这样做,而且我真的不知道如何在不从类继承的情况下开始编写这个 mutablestring 类。帮助解释如何做到这一点,差异会很棒。谢谢。
我不太擅长链表,所以这个问题很简单:) **