/** @author Adriano Luchetta @version 21-Nov-2005 @version 3-Dic-2004 */ import java.io.FileReader; import java.io.IOException; import java.util.Scanner; public class MainListaSuArray { public static void main(String[] args) throws IOException { // verifica argomenti su line di comando if (args.length < 1) { System.out.println("uso: $java MainListaSuArray nomeFile"); System.exit(1); } Scanner in = new Scanner(new FileReader(args[0])); List list1 = new ListaSuArray(); ListIterator iter1 = list1.getIterator(); while (in.hasNextLine()) { Scanner tok = new Scanner(in.nextLine()); tok.useDelimiter("[,;.!?()]+"); while (tok.hasNext()) { iter1.add(tok.next()); iter1.next(); } tok.close(); } in.close(); List list2 = new ListaSuArray(); listCopy(list1, list2); System.out.println("\n*** Lista 1 ***"); iter1 = list1.getIterator(); while (iter1.hasNext()) System.out.println((String) iter1.next()); System.out.println("\n*** Lista 2 ***"); ListIterator iter2 = list2.getIterator(); while (iter2.hasNext()) System.out.println((String) iter2.next()); // vuotamento e verifica della prima lista iter1 = list1.getIterator(); while (iter1.hasNext()) { iter1.next(); iter1.remove(); } System.out.println("\n*** Lista 1 dopo vuotamento ***"); iter1 = list1.getIterator(); while (iter1.hasNext()) System.out.println(iter1.next()); // vuotamento e verifica della seconda lista iter2 = list2.getIterator(); while (iter2.hasNext()) { iter2.next(); iter2.remove(); } System.out.println("\n*** Lista 2 dopo vuotamento ***"); iter2 = list2.getIterator(); while (iter2.hasNext()) System.out.println(iter2.next()); } //Copia da una lista a un'altra public static void listCopy(List from, List to) { //le due liste sono lo stesso oggetto if(from == to) return; to.makeEmpty(); //Vuoto la seconda ListIterator fromItr = from.getIterator(); ListIterator toItr = to.getIterator(); while (fromItr.hasNext()) { toItr.add(fromItr.next()); toItr.next(); // faccio avanzare l'iteratore } } }