Question: Please help! Finish and implement the instructed methods for StringList, BaseStringList, ArrayStringList, LinkedStringList, and Node classes given that StringList is the parent. The other classes
Please help! Finish and implement the instructed methods for StringList, BaseStringList, ArrayStringList, LinkedStringList, and Node classes given that StringList is the parent. The other classes must compile correctly and use StringList class as an interface.
BaseStringList: Create the abstract cspBaseStringList class such that it properly implements a subset of the abstract methods of StringList. Since BaseStringList is abstract it is not mandatory to implement all methods of StringList within this class. The exact methods this class must implement are listed in the method section for BaseStringList in the provided UML diagram above. Remember, since BaseStringList is an abstract parent to both ArrayStringList and LinkedStringList, its methods must be implemented without reference to the underlying data structure. In other words, within BaseStringList, you cannot use arrays or nodes. The code contained in this class must be general enough to work with both. Note: The size instance variable in BaseStringList is shown as #size in the UML diagram to designate that it has protected visibility and, therefore, must be declared in your Java code using the protected visibility modifier. The child classes of BaseStringList inherit their own copies of this protected size instance variable and have direct access to them. This variable should be initialized in the BaseStringList constructor. You must NOT redeclare the size variable in either of the child classes. For more information about protected visibility, refer to the Protected Visibility reading. Note: The methods that are listed in the UML diagram in BaseStringList must be implemented in that class. You are not allowed to move any of them into ArrayStringList or LinkedStringList. You may, however, find that you can move one or more methods from ArrayStringList and LinkedStringList up into BaseStringList. Moving methods up is allowed. In fact, it is encouraged. Any method that you can move up only has to be written once! However, accomplishing this will require some thought. We hope that all of you spend some time trying to ensure that ArrayStringList and LinkedStringList only contain the methods that absolutely need to be implemented in the child classes! ArrayStringList: Create the cspArrayStringList class such that it properly extends cspBaseStringList and fully implements the csadt.StringList interface with additional requirements listed below. You must explicitly define and document a default constructor for this class. The initial size of an ArrayStringList is regardless of the list's underlying storage remember, the list's internal storage and the list itself are two different things. Here is the signature: public ArrayStringList; Over the lifetime of an ArrayStringList object, its internal storage may change to accommodate more list elements. When your code increases the size of an ArrayStringList object's internal array storage, you should actively avoid: i increasing the array size by one; and ii doubling the size of the array. Increasing by one is wasteful as it requires making a new array and copying over all elements every time an item is added. Doubling the size of the array may be wasteful at large sizes as there may be many indices that contain null. Somewhere in between is more reasonable increasing by increasing by We'll leave the details up to you Furthermore, you should not set the initial array size to or to the largest number that is allowed. There is a requirement related to this class's storage included in the Absolute Requirements section. LinkedStringList: Create the cspLinkedStringList class such that it properly extends cspBaseStringList and fully implements the csadt.StringList interface with additional requirements listed below. You must explicitly define and document a default constructor for this class. The initial size of a LinkedStringList is regardless of the list's underlying storage remember, the list's internal storage and the list itself are two different things. Here is the signature: public LinkedStringList; There is a requirement related to this class's storage included in the Absolute Requirements section. points Test Cases: The bulk of this project will be graded based on or more test cases, each worth the same amount of points. This is the same as someone using the classes you wrote based purely on the interface definitions. If you implement the interface correctly, then you should pass the associated test cases. NonFunctional Requirements A nonfunctional requirement is subtracted from your point total if not satisfied. To emphasize the importance of these requirements, noncompliance results in the full point amount being subtracted from your point total. That is they are all or nothing. pointsRECOMMENDED No Static Variables: Use of static variables is not appropriate for this assignm
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
