Hello there Could someone help me with this JAVA problem P
Hello there,
Could someone help me with this JAVA problem:
//======================================================================
//======================================================================
P.S. \"Collection.java\" is only a class, no main in it. The main is in \"Main Class\"
Thank you, So much for the help in advance.
Solution
import java.util.Arrays;
import java.util.Scanner;
public class Collection {
int count;
int numArray[];
public Collection(int capacity) {
super();
this.numArray = new int[capacity];
}
private int search(int s) {
for (int i = 0; i < count; i++)
if (numArray[i] == s)
return i;
return -1;
}
public boolean add(int s) {
if (count < numArray.length && search(s) == -1) {
numArray[count] = s;
count++;
return true;
} else if (search(s) != -1) {
return false;
} else {
doubleCapacity();
numArray[count] = s;
count++;
return true;
}
}
public boolean remove(int s) {
int index = search(s);
System.out.println(index);
if (index == -1) {
return false;
} else {
for (int i = index + 1; i < count; i++)
numArray[i - 1] = numArray[i];
numArray[count - 1] = 0;
count--;
return true;
}
}
private int getCount() {
return this.count;
}
public int[] rotate(int order) {
int[] arr = this.numArray;
if (arr == null || order < 0) {
throw new IllegalArgumentException(\"Illegal argument!\");
}
for (int i = 0; i < order; i++) {
for (int j = arr.length - 1; j > 0; j--) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
}
return arr;
}
private void doubleCapacity() {
numArray = Arrays.copyOf(numArray, numArray.length * 2);
}
private void printMenu() {
System.out.println(\"***********************************\");
System.out.println(\"1: Add \");
System.out.println(\"2: Remove \");
System.out.println(\"3: Count \");
System.out.println(\"4: Swap Smallest \");
System.out.println(\"5: Display \");
System.out.println(\"6: RotateArray \");
System.out.println(\"7: Menu \");
System.out.println(\"8: quit \");
System.out.println(\"Enter your option\");
System.out.println(\"***********************************\");
}
private int[] swapSmallest() {
int[] arr = this.numArray;
int index = 0;
int smallest = arr[0];
for (int i = 1; i < count; i++)
if (arr[i] < smallest) {
index = i;
smallest = arr[i];
}
arr[index] = arr[0];
arr[0] = smallest;
return arr;
}
@Override
public String toString() {
if (getCount() == 0)
return \"{}\";
String s = \"{\";
for (int i = 0; i < count - 1; i++)
s += \" \" + numArray[i] + \",\";
s += numArray[count - 1] + \"}\ \";
return s;
}
public static void main(String[] args) {
Collection c = new Collection(5);
Scanner in = new Scanner(System.in);
int t;
int a[];
while (true) {
c.printMenu();
int option = in.nextInt();
switch (option) {
case 1:
System.out.println(\"Enter integer to add\");
t = in.nextInt();
if (c.add(t))
System.out.println(t + \" added successfully\");
else
System.out.println(t + \" already exists\");
break;
case 2:
System.out.println(\"Enter integer to remove\");
t = in.nextInt();
if (c.remove(t))
System.out.println(t + \" removed successfully\");
else
System.out.println(t + \" doesnot exists\");
break;
case 3:
System.out.println(\"Number of elements in array are \" + c.getCount());
break;
case 4:
a = c.swapSmallest();
for (int i = 0; i < c.getCount(); i++)
System.out.print(a[i] + \"\\t\");
System.out.println();
break;
case 5:
System.out.println(c.toString());
break;
case 6:
System.out.println(\"Enter order to rotate\");
t = in.nextInt();
a = c.rotate(t);
for (int i = 0; i < c.getCount(); i++)
System.out.print(a[i] + \"\\t\");
System.out.println();
break;
case 7:
c.printMenu();
break;
case 8:
System.exit(0);
break;
default:
System.out.println(\"Invalid Input\");
break;
}
}
}
}





