Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I just need help with the arraytester.java class with approach 1 to 3, Approach 1: Write code in the main method in a test class

I just need help with the arraytester.java class with approach 1 to 3,

Approach 1: Write code in the main method in a test class Add code to the main of ArraySetTester to create SetA and SetB, fill them with data and write a contains operation that tests if SetA contains SetB.

Approach 2: Write a static method in a test class Comment out the code from approach 1. Add a static method to ArraySetTester with prototype: public static boolean contains(SetADT Set1, SetADT Set2)

Approach 3: Add a prototype to the interface Add the following prototype to the SetADT interface and add an implementation of contains to ArraySet. public boolean contains(SetADT Set)

arrayset.java

package arraysetpackage;

import java.util.Iterator; import java.util.NoSuchElementException; import java.util.Random;

public class ArraySet implements SetADT { private static final int DEFAULT_SIZE = 20; private int count; private T[] setValues; private Random rand; public ArraySet (){ this(DEFAULT_SIZE); } // end of constructor public ArraySet (int size){ count = 0; setValues = (T[]) new Object[size]; rand = new Random(); } // end of constructor

public void add(T element) { if (contains(element)) return; if (count == setValues.length) { T[] temp = (T[]) new Object[setValues.length*2]; for (int i = 0; i < setValues.length; i++) { temp[i] = setValues[i]; } setValues = temp; } setValues[count] = element; count++; }

public void addAll(SetADT set) { Iterator iter = set.iterator(); while (iter.hasNext()){ System.out.println(iter.next()); } // finish: this method adds all of the input sets elements to this array } public boolean contains(T target) { for (int i = 0; i < count; i++ ) if (setValues[i].equals(target)) return true; return false; } public String toString () { String toReturn = "["; for (int i = 0; i < count; i++) { toReturn += setValues[i] + " "; } toReturn +="]"; return toReturn; }

public boolean equals(SetADT set) { // finish: tests to see if this set and the input set have exactly the same // elements return false; // this is just generic, you need to change the return } public boolean isEmpty() { return count==0; } public Iterator iterator() { return new ArraySetIterator(setValues,count); } public T remove(T element) { for (int i = 0; i < count; i++ ) { if (setValues[i].equals(element)) { T toReturn = setValues[i]; setValues[i] = setValues[count-1]; count--; return toReturn; } } throw new NoSuchElementException("not present"); }

public T removeRandom() { // finish: remove and return a random element. you will use the // local rand object return null; // this is just generic, you need to change the return } public int size() { return count; } public SetADT union(SetADT set) { // finish: a new set is created and returned. This new set will // contain all of elements from this set and the input parameter set return null; // this is just generic, you need to change the return }

} arraysetester.java:

package arraysetpackage;

import java.util.Iterator;

public class ArraySetTester {

public static void main(String[] args) { SetADT mySet = new ArraySet();

for (int i = 0; i < 12; i++) mySet.add(new String("apple"+i));

System.out.println(mySet); System.out.println("mysize = "+mySet.size()+ " [expect 12]"); mySet.add(new String ("apple0")); System.out.println("mysize = "+mySet.size()+ " [expect 12]"); System.out.println("contains 11? = "+mySet.contains(new String("11"))); System.out.println("contains apple11? = "+mySet.contains(new String("apple11"))); try { String removedItem = mySet.remove("apple7"); System.out.println(mySet); System.out.println(removedItem+ " was removed"); } catch (Exception e) { System.out.println("item not found, can't remove"); } try { String removedItem = mySet.remove("apple17"); System.out.println(mySet); System.out.println(removedItem+ " was removed"); } catch (Exception e) { System.out.println("item not found, can't remove"); } Iterator iter = mySet.iterator(); while (iter.hasNext()){ System.out.println(iter.next()); }

SetADT mySet2 = new ArraySet();

for (int i = 0; i < 12; i++) mySet2.add(new String("orange"+i)); System.out.println(mySet2); // add code here to test methods you finish in ArraySet // after you complete the existing methods, do the Case Study // Approach 1 will be here in the main // Approach 2 will be here in ArraySetTester, but you will // create a local static method that you will call from the main // Approach 3 will start with uncommenting the prototype in SetADT // and then creating the method in ArraySet. Finally you will write // code here to test the new method }

}

arraysetiterator.java

package arraysetpackage;

import java.util.Iterator; import java.util.NoSuchElementException;

public class ArraySetIterator implements Iterator { private int position; //Always points to the next value private T [] values; private int count; public ArraySetIterator (T [] theValues, int aCount) { position = 0; values = theValues; count = aCount; } public boolean hasNext() { return position < count; } public T next() { if (position >= count) throw new NoSuchElementException("Past " + count + " elements"); position++; return values[position - 1]; } public void remove() { throw new UnsupportedOperationException("No remove for ArraySet"); }

}

setadt.java

package arraysetpackage;

import java.util.Iterator;

public interface SetADT { public void add (T element); //Adds one element to this set, ignoring duplicates public void addAll (SetADT set); //Adds all elements in the parameter to this set, // ignoring duplicates public T removeRandom (); //Removes and returns a random element from this set public T remove (T element); //Removes and returns the specified element from this set public SetADT union (SetADT set); //Returns the union of this set and the // parameter public boolean contains (T target); //Returns true if this set contains the parameter //public boolean contains(SetADT Set); // Returns true if this set contains the parameter public boolean equals (SetADT set); //Returns true if this set and the parameter //contain exactly same elements public boolean isEmpty(); //Returns true if this set contains no elements public int size(); //Returns the number of elements in this set public Iterator iterator(); //Returns an iterator for the elements in this set public String toString(); //Returns a string representation of this set }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Modern Database Management

Authors: Jeffrey A. Hoffer Fred R. McFadden

4th Edition

0805360476, 978-0805360479

More Books

Students also viewed these Databases questions