Data Structures using Java. public class SortedList { //Array to hold the values
ID: 3759399 • Letter: D
Question
Data Structures using Java.
public class SortedList {
//Array to hold the values
private String[] values;
//Creates empty list
public void createSortedList() {
values = new String[20];
}
//Method to check if list is empty
public boolean sortedIsEmpty() {
//if first element is null then its empty list
return values[0] == null;
}
//Method to return list size
public int sortedSize() {
//Iterate through all items
for (int counter = 0; counter < values.length; counter++) {
//Size is same as index of first null element
if (values[counter] == null) {
return counter;
}
}
//If no null then size is same as array length
return values.length;
}
//Method to add new item
public void sortedAdd(String itemToAdd) {
//If array is full then throw error
if (sortedSize() == values.length) {
throw new ListException("List is full, no need items can be added");
}
//For empty list add to top of list
if (sortedIsEmpty()) {
values[0] = itemToAdd;
return;
}
int size = sortedSize();
int index = -1;
//Iterate through all records in sorted list
for (int counter = 0; counter < size; counter++) {
//Find right index where new item needs to be added
if (values[counter].compareTo(itemToAdd) > 0) {
index = counter;
break;
}
}
if (index==-1) {
//not found so add at the end
values[size] = itemToAdd;
return;
}
//Create new array having the new item
String[] newValuesArr = new String[20];
for (int i = 0; i < size; i++) {
newValuesArr[i] = values[i];
}
//Move main array forward by one
int counter = 0;
for (int i = 0; i < size; i++) {
//If array index same as where new value needs to be added
if (i == index) {
//Add new item
newValuesArr[counter++] = itemToAdd;
}
//Add existing items to new array
newValuesArr[counter++] = values[i];
}
values = newValuesArr;
}
//Method to remove the passed item from list
public void sortedRemove(String itemToRemove) {
//Get index to remove
int index = locateIndex(itemToRemove);
String[] newValuesArr = new String[20];
int counter = 0;
for (int i = 0; i < sortedSize(); i++) {
//copy to new array if it is not the value to be deleted
if(i!=index){
newValuesArr[counter] = values[i];
counter++;
}
}
values = newValuesArr;
}
//Returns the value present at given index and if its not valid index then throws exception
public String sortedGet(int index) {
if(index<0 || index>=sortedSize()){
throw new ListException("Index is out of bounds");
}
return values[index];
}
//Method to find index of value in the array, if not found then exception is thrown
public int locateIndex(String value){
for (int index = 0; index < sortedSize(); index++) {
//If item to lookup is found
if (values[index].equalsIgnoreCase(value)) {
return index;
}
}
throw new ListException("Value "+value+" not found in list");
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
public class ListDriver {
public static void main(String[] args) {
//Create list object
SortedList list = new SortedList();
//Create empty list
list.createSortedList();
//Add 20 items
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
//Display existing items in list
displaySortedList(list);
//Try adding 21st item to list which should throw exception
try{
list.sortedAdd("SSS 2222");
}catch(ListException e){
System.out.println(e.getMessage());
}
int size = list.sortedSize();
String value = "YYY 1111";
//Print size before removing item
System.out.println("Size before removing "+value+": "+size);
//Remove an item
list.sortedRemove(value);
//Print size after removing item
size = list.sortedSize();
System.out.println("Size after removing "+value+": "+size);
displaySortedList(list);
value = "CCC 4433";
//Find index of value to lookup
int locatedIndex = list.locateIndex(value);
System.out.println(value+" located at index "+locatedIndex);
value = "SSS 5432";
//Add a duplicate value and display list
list.sortedAdd(value);
System.out.println("List after adding duplicate value: "+value);
displaySortedList(list);
}
public static void displaySortedList(SortedList list) {
System.out.println("List is ");
for (int i = 0; i < list.sortedSize(); i++) {
System.out.println(list.sortedGet(i) + " ");
}
}
}
Modify it to make the ADT resizable. For this ADT, the MAX_SIZE will not be final, but rather will be increased whenever an new item needs to be added and the array is full (ie. size==MAX_SIZE). Whenever the array needs to grow, add the lesser of: (i) half the current size, or; (ii) 50 additional. Have your ADT report its old and new maximum size whenever the resize operation is called by printing “ADT resized – from xxx to yyy” where xxx is the old size and yyy is the new size. Modify the test driver to increase the number of names to more than 310 (duplicate names are fine).
Explanation / Answer
1) == SortedList.java ==
public class SortedList {
// Array to hold the values
private String[] values;
int length=20;
// Creates empty list
public void createSortedList() {
values = new String[length];
}
// Method to check if list is empty
public boolean sortedIsEmpty() {
// if first element is null then its empty list
return values[0] == null;
}
// Method to return list size
public int sortedSize() {
// Iterate through all items
for (int counter = 0; counter < values.length; counter++) {
// Size is same as index of first null element
if (values[counter] == null) {
return counter;
}
}
// If no null then size is same as array length
return values.length;
}
// Method to add new item
public void sortedAdd(String itemToAdd) throws ListException {
// If array is full then throw error
if (sortedSize() == values.length) {
values=growMyArray();
//throw new ListException("List is full, no need items can be added");
}
// For empty list add to top of list
if (sortedIsEmpty()) {
values[0] = itemToAdd;
return;
}
int size = sortedSize();
int index = -1;
// Iterate through all records in sorted list
for (int counter = 0; counter < size; counter++) {
// Find right index where new item needs to be added
if (values[counter].compareTo(itemToAdd) > 0) {
index = counter;
break;
}
}
if (index == -1) {
// not found so add at the end
values[size] = itemToAdd;
return;
}
// Create new array having the new item
String[] newValuesArr = new String[length];
for (int i = 0; i < size; i++) {
newValuesArr[i] = values[i];
}
// Move main array forward by one
int counter = 0;
for (int i = 0; i < size; i++) {
// If array index same as where new value needs to be added
if (i == index) {
// Add new item
newValuesArr[counter++] = itemToAdd;
}
// Add existing items to new array
newValuesArr[counter++] = values[i];
}
values = newValuesArr;
}
private String[] growMyArray() {
int size=(int)(length/2) > 50 ? 50 : (int)(length/2) ;
int newLength = length + size;
String[] newdata = new String[newLength];
System.arraycopy(values, 0, newdata, 0, length);
System.out.println("Increasing array size from: "+length + " to: "+newLength);
length=newLength;
return newdata;
}
// Method to remove the passed item from list
public void sortedRemove(String itemToRemove) throws ListException {
// Get index to remove
int index = locateIndex(itemToRemove);
String[] newValuesArr = new String[length];
int counter = 0;
for (int i = 0; i < sortedSize(); i++) {
// copy to new array if it is not the value to be deleted
if (i != index) {
newValuesArr[counter] = values[i];
counter++;
}
}
values = newValuesArr;
}
// Returns the value present at given index and if its not valid index then
// throws exception
public String sortedGet(int index) throws ListException {
if (index < 0 || index >= sortedSize()) {
throw new ListException("Index is out of bounds");
}
return values[index];
}
// Method to find index of value in the array, if not found then exception
// is thrown
public int locateIndex(String value) throws ListException {
for (int index = 0; index < sortedSize(); index++) {
// If item to lookup is found
if (values[index].equalsIgnoreCase(value)) {
return index;
}
}
throw new ListException("Value " + value + " not found in list");
}
}
====
2) == ListDriver.java ===
public class ListDriver {
public static void main(String[] args) throws ListException {
//Create list object
SortedList list = new SortedList();
//Create empty list
list.createSortedList();
//Add 20 items
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
list.sortedAdd("XYZ 9999");
list.sortedAdd("SSS 1234");
list.sortedAdd("YYY 1111");
list.sortedAdd("ZZZ 5555");
list.sortedAdd("QQQ 5433");
list.sortedAdd("GFD 5443");
list.sortedAdd("DDD 6754");
list.sortedAdd("DDE 2323");
list.sortedAdd("NFR 5432");
list.sortedAdd("QWE 5443");
list.sortedAdd("QWR 5674");
list.sortedAdd("YYY 6666");
list.sortedAdd("EEE 1234");
list.sortedAdd("BBB 5555");
list.sortedAdd("CCC 4433");
list.sortedAdd("SSS 1233");
list.sortedAdd("SDS 4533");
list.sortedAdd("AAA 4444");
list.sortedAdd("BBB 5555");
list.sortedAdd("SSS 5432");
list.sortedAdd("SSS 5432");
//Display existing items in list
displaySortedList(list);
//Try adding 21st item to list which should throw exception
try{
list.sortedAdd("SSS 2222");
}catch(ListException e){
System.out.println(e.getMessage());
}
int size = list.sortedSize();
String value = "YYY 1111";
//Print size before removing item
System.out.println("Size before removing "+value+": "+size);
//Remove an item
list.sortedRemove(value);
//Print size after removing item
size = list.sortedSize();
System.out.println("Size after removing "+value+": "+size);
displaySortedList(list);
value = "CCC 4433";
//Find index of value to lookup
int locatedIndex = list.locateIndex(value);
System.out.println(value+" located at index "+locatedIndex);
value = "SSS 5432";
//Add a duplicate value and display list
list.sortedAdd(value);
System.out.println("List after adding duplicate value: "+value);
displaySortedList(list);
}
public static void displaySortedList(SortedList list) throws ListException {
System.out.println("List is ");
for (int i = 0; i < list.sortedSize(); i++) {
System.out.println(list.sortedGet(i) + " ");
}
}
}
======
3) ==ListException.java====
public class ListException extends Exception {
public ListException(String string) {
super(string);
}
}
====
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.