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

In class we implemented methods for removing and retrieving an arbitrary item fr

ID: 3790311 • Letter: I

Question

In class we implemented methods for removing and retrieving an arbitrary item from a bag. The methods returned either the last item (array) or the first item (linked structure). Sometimes returning a random item is more useful, as for word and card games. Other times, a user may want to remove a specific item (for instance, an ‘E’ letter tile or an Ace card). To give users these options, we will add three methods to our bag interface:

boolean remove (T item);

T removeRandom();

T getRandom();

Write code for these methods for both the ArrayBag and LinkedBag implementations. Then test them using the Bags driver program. Your output for the LinkedBag implementation should look like this (and for the ArrayBag implementation, the items will simply be reversed):

Here's what's in our bag

[lime, coconut, kiwi, grape, orange]

Does our bag contain the word 'kiwi'? yes

Does our bag contain the word 'mango'? no

Selecting an item (always same)

lime lime

Selecting a random item (varies)

coconut    kiwi

Removing 'grape' from the bag

[coconut, kiwi, lime, orange]

Removing an item (always end one)

coconut    [kiwi, lime, orange]

Removing a random item

lime [kiwi, orange]

Let's empty the bag

[]

Trying to get a random item

null

Trying to remove a random item

null

Explanation / Answer

BagOperation.java

package com.sweet.test;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;

public class BagOperation {

   public void showBagItemsArray(String[] itemsArray)
   {
       for(String item: itemsArray)
       {
           System.out.print(item+" ");
       }
   }
   public void showBagItemsList(LinkedList<String> itemList)
   {
       for(String item: itemList)
       {
           System.out.print(item+" ");
       }
   }
   public void checkItemInArray(String itemName,String[] itemArray)
   {
       for(String item: itemArray)
       {
           if(item.equalsIgnoreCase(itemName))
           {
               System.out.println("Yes");
               return;
           }
       }
       System.out.println("No");
   }
   public void checkItemInList(String itemName,LinkedList<String> itemArray)
   {
       for(String item: itemArray)
       {
           if(item.equalsIgnoreCase(itemName))
           {
               System.out.println("Yes");
               return;
           }
       }
       System.out.println("No");
   }
   public void selectItemInArray(String[] itemArray)
   {
       if(itemArray.length!=0)
       {  
           System.out.println(itemArray[0]);
       }
       else
       {
           System.out.println("null");
       }
   }
   public void selectItemInList(LinkedList<String> itemList)
   {
       if(!itemList.isEmpty())
       {  
           System.out.println(itemList.getFirst());
       }
       else
       {
           System.out.println("null");
       }
   }
   public void selectRandomItemInArray(String[] itemArray)
   {
       if(itemArray.length!=0)
       {  
           int rnd = new Random().nextInt(itemArray.length);
           System.out.println(itemArray[rnd]);
       }
       else
       {
           System.out.println("null");
       }
   }
   public void selectRandomItemInList(LinkedList<String> itemList)
   {
       if(!itemList.isEmpty())
       {  
           int rnd = new Random().nextInt(itemList.size());
           System.out.println(itemList.get(rnd));
       }
       else
       {
           System.out.println("null");
       }
   }
   public String[] removeItemInArray(String itemName,String[] itemArray)
   {
       List<String> listOfItems = Arrays.asList(itemArray);
       for(int i = 0;i<listOfItems.size();i++)
       {
           if(listOfItems.get(i).equalsIgnoreCase(itemName))
           {
               listOfItems.remove(i);
               break;
           }
       }
       return itemArray = listOfItems.toArray(itemArray);
      
   }
   public LinkedList<String> removeItemInList(String itemName,LinkedList<String> itemList)
   {
       for(int i = 0;i<itemList.size();i++)
       {
           if(itemList.get(i).equalsIgnoreCase(itemName))
           {
               itemList.remove(i);
           }
       }
       return itemList;
   }
   public String[] removeRandomItemInArray(String[] itemArray)
   {
       if(itemArray.length!=0)
       {
           List<String> listOfItems = Arrays.asList(itemArray);
           int rnd = new Random().nextInt(listOfItems.size());
           listOfItems.remove(rnd);
           itemArray = listOfItems.toArray(itemArray);
       }
       return itemArray;
   }
   public LinkedList<String> removeRandomInList(LinkedList<String> itemList)
   {
       if(!itemList.isEmpty())
       {
           int rnd = new Random().nextInt(itemList.size());
           itemList.remove(rnd);
       }
       return itemList;
   }
   public String[] removeEndItemInArray(String[] itemArray)
   {
       if(itemArray.length!=0)
       {
           itemArray = Arrays.copyOf(itemArray, itemArray.length-1);
       }
       return itemArray;
   }
   public LinkedList<String> removeEndInList(LinkedList<String> itemList)
   {
       if(!itemList.isEmpty())
       {
           itemList.remove(itemList.size()-1);
       }
       return itemList;
   }
   public String[] emptyArray(String[] itemArray)
   {
       return null;
   }
   public LinkedList<String> emptyList(List<String> itemList)
   {
       return null;
      
   }
  

}

BagOperationTest.java

package com.sweet.test;

import java.util.Arrays;

import java.util.LinkedList;

import java.util.Scanner;

public class BagOperationTest

{

   public static void main(String[] args) {

       String[] bagArray = {"lime","coconut","kiwi","grape","orange"};

       LinkedList<String> bagList = new LinkedList<String>(Arrays.asList(bagArray));

       Scanner sc = new Scanner(System.in);

       BagOperation bagOperation = new BagOperation();

       while(true)

       {

       System.out.println("Select one option : 1) To view Bag Items in array 2) To view Bag Items in linked List"

               + " 3) To check Item In Array 4) To check Item In Linked List 5) To select item in Array "

               + " 6) To select item in Linked List 7) To select Random Item In Array 8) To select Random Item In Linked List "

               + " 9) To remove Item In Array 10) To remove Item In Linked List "

               + " 11) To remove random Item In Array 12) To remove random Item In Linked List "

               + " 13) To remove end Item In Array 14) To remove end Item In Linked List "

               + " 15) To Empty Array Bag 16) To Empty Liked List Bag 17) To Exit"

               );

       int ch = sc.nextInt();

       switch(ch)

       {

       case 1:

           {

               bagOperation.showBagItemsArray(bagArray);

               break;

           }

       case 2:

       {

           bagOperation.showBagItemsList(bagList);

           break;

       }

       case 3:

       {

           System.out.println("Select item to Check");

           String itemName = sc.next();

           bagOperation.checkItemInArray(itemName, bagArray);

           break;

       }

       case 4:

       {

           System.out.println("Select item to Check");

           String itemName = sc.next();

           bagOperation.checkItemInList(itemName, bagList);

           break;

       }

       case 5:

       {

           bagOperation.selectItemInArray(bagArray);

           break;

       }

       case 6:

       {

           bagOperation.selectItemInList(bagList);

           break;

       }

       case 7:

       {

           bagOperation.selectRandomItemInArray(bagArray);

           break;

       }

       case 8:

       {

           bagOperation.selectRandomItemInList(bagList);

           break;

       }

       case 9:

       {

           System.out.println("Select item to remove");

           String itemName = sc.next();

           bagArray = bagOperation.removeItemInArray(itemName, bagArray);

           break;

       }

       case 10:

       {

           System.out.println("Select item to remove");

           String itemName = sc.next();

           bagList = bagOperation.removeItemInList(itemName, bagList);

           break;

       }

       case 11:

       {

           bagOperation.removeRandomItemInArray(bagArray);

           break;

       }

       case 12:

       {

           bagList = bagOperation.removeRandomInList(bagList);

           break;

       }

       case 13:

       {

           bagOperation.removeEndItemInArray(bagArray);

           break;

       }

       case 14:

       {

           bagList = bagOperation.removeEndInList(bagList);

           break;

       }

       case 15:

       {

           bagOperation.emptyArray(bagArray);

           break;

       }

       case 16:

       {

           bagList = bagOperation.emptyList(bagList);

           break;

       }

       case 17:

       {

           System.exit(0);

       }

       }

   }

   }

}

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