Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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 abst

Explanation / 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]

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote