Soal:
Revise the class OneWayNoRepeatsList, as given in Listing 7.9, so that is it allocates an extra element in the array entry and ignores entry [0], as suggested earlier near the end of the section entitled “More About Array Indices”.
Penjelasan soal:
kita akan merevisi class OneWayNoRepeatsList seperti pada Listing 7.9 agar elemennya bisa di tambah dan mengabaikan indeks [0]-nya.
Script Code :
package listdemo1;
import java.util.*;
public class ListDemo1 {
public static final int MAX_SIZE = 3; //Assumed > 0
public static void main(String[] args)
{
OneWayNoRepeatsList toDoList = new OneWayNoRepeatsList(MAX_SIZE);
System.out.println("Masukan Item :");
boolean moreEntries = true;
String next = null;
Scanner keyboard = new Scanner(System.in);
while (moreEntries && !toDoList.isFull())
{
System.out.println("item :");
next = keyboard.nextLine();
toDoList.addItem(next);
if (toDoList.isFull())
{
System.out.println("List is now full.");
}
else
{
System.out.print("item lain? ");
String ans = keyboard.nextLine();
if (ans.trim().equalsIgnoreCase("no"));
moreEntries = false; //User says no more
}
}
System.out.println("The list contains:");
int position = OneWayNoRepeatsList.START_POSITION;
next = toDoList.getEntryAt(position);
while (next != null) //null indicates end of list
{
System.out.println(next);
position++;
next = toDoList.getEntryAt(position);
}
}
}
class OneWayNoRepeatsList :
package listdemo1;
class OneWayNoRepeatsList {
public static int START_POSITION = 1;
public static int DEFAULT_SIZE = 50;
private int countOfEntries;
private String [] entry;
public OneWayNoRepeatsList(int maximumNumberOfEntries){
entry = new String [maximumNumberOfEntries];
countOfEntries = 0;
}
public OneWayNoRepeatsList(){
entry = new String[DEFAULT_SIZE];
countOfEntries = 0;
}
public boolean isFull(){
return countOfEntries == entry.length;
}
public boolean isEmpty(){
return countOfEntries == 0;
}
public void addItem(String item){
if (!isOnList(item)){
if (countOfEntries == entry.length){
System.out.println(“adding to a full list!”);
System.exit(0);
}else{
entry[countOfEntries] = item;
countOfEntries++;
}
}
}
public String getEntryAt(int position){
String result = null;
if ((1<= position) && (position <= countOfEntries))
result = entry[position -1];
return result;
}
public boolean atLastEntry(int position){
return position == countOfEntries;
}
public boolean isOnList(String item){
boolean found = false;
int i=0;
while (!found && (i<countOfEntries)){
if (item.equalsIgnoreCase(entry[i]))
found = true;
else
i++;
}
return found;
}
public int getMaximumNumberOfEntries(){
return entry.length;
}
public int getNumberOfEntries(){
return countOfEntries;
}
public void eraseList(){
countOfEntries = 0;
}
}
Outputnya :
Kelompok :
java_14_12
Novrisa Dias P 1202164035
Raden Ichsan Achmad F 1202160362
SI – 40 – 03