import java.util.ArrayList; import java.util.List; import java.util.Random; import javax.swing.JOptionPane; /* * ListRecursionExerciseSolution.java * * Created on October 2, 2005, 4:10 PM * */ /** * * @author Bill Kraynek */ public class ListRecursionExerciseSolution { int indexOf(List l, Object x) { if( l.size() == 0 ) return -1; if( x.equals(l.get(l.size()-1))) return l.size()-1; return indexOf(l.subList(0, l.size()-1),x); }// end indexOf List reverse(List l) { if( l.size() == 0 ) return l; List l1 = reverse(l.subList(1,l.size())) ; l1.add(l.get(0)); return l1; }// end reverse /** Creates a new instance of ListRecursionExerciseSolution */ public ListRecursionExerciseSolution() { Random r = new Random(); List list = new ArrayList(); for( int i = 0; i < 10; i++ ) { list.add(r.nextInt(100)); } // end for String out = ""; out += "Index of 37 is " + indexOf(list,37) + "\n"; list.add(37); out += "Index of 37 is " + indexOf(list,37) + "\n"; out += list + "\nreversed is\n" + reverse(list) + "\n"; JOptionPane.showMessageDialog(null,out); } /** * @param args the command line arguments */ public static void main(String[] args) { new ListRecursionExerciseSolution(); } }