class IteratorListApp
{
publicstaticvoidmain(String[] args) throws IOException
{
LinkListA theList = new LinkListA();
ListIterator iter1 = theList.getIterator();
longvalue;
iter1.insertAfter(20);
iter1.insertAfter(40);
iter1.insertAfter(80);
iter1.insertBefore(60);
while(true)
{
System.out.print("Enter first letter of show, reset, ");
System.out.print("next, get, before, after, delete: ");
System.out.flush();
int choice = getChar();
switch(choice)
{
case's':
if( !theList.isEmpty() )
theList.displayList();
else
System.out.println("List is empty");
break;
case'r':
iter1.reset();
break;
case'n':
if( !theList.isEmpty() && !iter1.atEnd() )
iter1.nextLink();
else
System.out.println("Can't go to next link");
break;
case'g':
if( !theList.isEmpty() )
{
value = iter1.getCurrent().dData;
System.out.println("Returned " + value);
}
else
System.out.println("List is empty");
break;
case'b':
System.out.print("Enter value to insert: ");
System.out.flush();
value = getInt();
iter1.insertBefore(value);
break;
case'a':
System.out.print("Enter value to insert: ");
System.out.flush();
value = getInt();
iter1.insertAfter(value);
break;
case'd':
if( !theList.isEmpty() )
{
value = iter1.deleteCurrent();
System.out.println("Deleted " + value);
}
else
System.out.println("Can't delete");
break;
default:
System.out.println("Invalid entry");
}
}
}
//--------------------------------------------------------------publicstatic String getString() throws IOException//从键盘输入字符串
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
return s;
}
//-------------------------------------------------------------publicstaticchargetChar() throws IOException
{
String s = getString();
return s.charAt(0);
}
//-------------------------------------------------------------publicstaticintgetInt() throws IOException
{
String s = getString();
return Integer.parseInt(s);
}
//-------------------------------------------------------------
}
以下是一种测试结果:
Enter first letter of show, reset, next, get, before, after, delete: s
20406080
Enter first letter of show, reset, next, get, before, after, delete: r
Enter first letter of show, reset, next, get, before, after, delete: n
Enter first letter of show, reset, next, get, before, after, delete: n
Enter first letter of show, reset, next, get, before, after, delete: n
Enter first letter of show, reset, next, get, before, after, delete: n
Can't go to next link
Enter first letter of show, reset, next, get, before, after, delete: g
Returned 80
Enter first letter of show, reset, next, get, before, after, delete: b
Enter value to insert: 333
Enter first letter of show, reset, next, get, before, after, delete: s
20406033380
Enter first letter of show, reset, next, get, before, after, delete: d
Deleted 333
Enter first letter of show, reset, next, get, before, after, delete: s
20406080
Enter first letter of show, reset, next, get, before, after, delete: