Question 1, implement the following UML diagram, please follow the notes Note 1:
ID: 3857906 • Letter: Q
Question
Question 1, implement the following UML diagram, please follow the notes
Note 1:
Note 2:
Implement the following UML diagram (remember that shading + italics here indicates an abstract class) Wordlist - list : ArrayList + WordList ): +getList O : ArrayList String +setList (ArrayListI) void //over-writes current ArrayList +abstract compare (w: WordList ): boolean AlphabeiedList + AlphabetizedList ( AlphabetizedList ( Array ListString> : I ) : // set internal ArrayList equal to parameter +compare ( +alphabetize () : void /I alphabetizes current ArrayList +merge (AlphabetizedList: al) : void +toString): String compare w : WordList ) : boolean // implement abstract method (w WordList): boolean implement abstExplanation / Answer
Given below is the needed code ... Please rate if the answer helped. Thank you.
WordList.java
import java.util.ArrayList;
public abstract class WordList {
protected ArrayList<String> list;
public WordList()
{
list = new ArrayList<String>();
}
public ArrayList<String> getList()
{
ArrayList<String> copy = new ArrayList(list);
return copy;
}
public void setList(ArrayList<String> l)
{
//store in sorted order using insertion sort
list.clear();
boolean added;
for(String s : l)
{
if(list.isEmpty())
list.add(s);
else
{
added = false;
for(int i = 0; !added && i < list.size(); i++)
{
if(s.compareTo(list.get(i))<0)
{
list.add(i, s);
added = true;
}
}
//if not added in the loop above, add it to end
if(!added)
list.add(s);
}
}
}
public abstract boolean compare(WordList w);
}
AlphabetizedList.java
import java.util.ArrayList;
import java.util.Arrays;
public class AlphabetizedList extends WordList {
public AlphabetizedList() {
super();
}
public AlphabetizedList(ArrayList<String> l)
{
super();
setList(l);
}
@Override
public boolean compare(WordList w) {
ArrayList<String> list2 = w.getList();
if(list.isEmpty() || list2.isEmpty())
return false;
else
{
if(list.get(0).compareTo(list2.get(0)) < 0)
return true;
else
return false;
}
}
public void alphabetize()
{
ArrayList<String> temp = getList();
setList(temp); //since set list will do the sorting... we just set it back
}
public void merge(AlphabetizedList al)
{
list.addAll(al.list);
alphabetize();
}
public String toString()
{
return Arrays.toString(list.toArray());
}
}
DemoList.java
import java.util.ArrayList;
public class DemoList {
public static void main(String[] args) {
ArrayList<String> al1 = new ArrayList<String>();
ArrayList<String> al2 = new ArrayList<String>();
al1.add("apple");
al1.add("pear");
al1.add("plum");
al2.add("aardvark");
al2.add("llama");
al2.add("koala");
AlphabetizedList list1 = new AlphabetizedList(al1);
AlphabetizedList list2 = new AlphabetizedList(al2);
System.out.println("list1 = " + list1);
System.out.println("list2 = " + list2);
System.out.println("list1.compare(list2) = " + list1.compare(list2));
list1.merge(list2);//merge and sort it internally using alphabetize
System.out.println("After merging list1 with list2, list1 = " + list1);
System.out.println("list2 = " + list2);
}
}
output
list1 = [apple, pear, plum]
list2 = [aardvark, koala, llama]
list1.compare(list2) = false
After merging,
list1 = [aardvark, apple, koala, llama, pear, plum]
list2 = [aardvark, koala, llama]
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.