Question
JAVA using what code I have finished here please create a new method called removeDuplicates() this should remove the duplicates in place such that each
JAVA using what code I have finished here please create a new method called removeDuplicates() this should remove the duplicates in place such that each element appears only once after sorted in lowest to the highest order. public int removeDuplicates
I want in this method to return the new length of the array after duplicates (if any are removed) or else return 0 which means that no duplicates exist; public
then I need to add code in main() to test the above method. I want two test cases one returns the new length of the array after duplicates are removed, then recall this method and returns 0
Example: nums = [1,1,2] i need the method function should return length = 2, with the first two elements of nums being 1 and 3
public class OrderedApp { public static void main(String[] args) { int maxSize = 100; // array size OrdArray arr; // reference to array arr = new OrdArray(maxSize); // create the array
arr.insert(77); // insert 10 items arr.insert(99); arr.insert(44); arr.insert(55); arr.insert(22); arr.insert(88); arr.insert(11); arr.insert(00); arr.insert(66); arr.insert(33);
int searchKey = 55; // search for item if( arr.find(searchKey) != arr.size() ) System.out.println("Found " + searchKey); else System.out.println("Can't find " + searchKey);
arr.display(); // display items
arr.delete(00); // delete 3 items arr.delete(55); arr.delete(99);
arr.display(); // display items again } // end main() } // end class OrderedApp
******************************** Class
class OrdArray { private long[] a; // ref to array a private int nElems; // number of data items //----------------------------------------------------------- public OrdArray(int max) // constructor { a = new long[max]; // create array nElems = 0; } //----------------------------------------------------------- public int size() { return nElems; } //----------------------------------------------------------- public int find(long searchKey) { int lowerBound = 0; int upperBound = nElems-1; int curIn;
while(true) { curIn = (lowerBound + upperBound ) / 2; if(a[curIn]==searchKey) return curIn; // found it else if(lowerBound > upperBound) return nElems; // can't find it else // divide range { if(a[curIn] < searchKey) lowerBound = curIn + 1; // it's in upper half else upperBound = curIn - 1; // it's in lower half } // end else divide range } // end while } // end find() //----------------------------------------------------------- public void insert(long value) // put element into array { int j; for(j=0; j
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started