/* * MyTrainExample12.java * * Created on 09/09/01 */ /** * * @author Michael Thomas * @version 1.0 */ import java.util.Vector; //################################################################################# public class MyVectorJdk12 extends MyTrain12 { //################################################################################# //---------------------------------------------------------------------------------- private String init_train() { //---------------------------------------------------------------------------------- String strMsg = ""; int intRow = 0; strMsg += "Example of using Vector class:" + STRCRLF; strMsg += " * The Vector class implements a growable array of objects." + STRCRLF; strMsg += " * In JDK 1.2 the Vector class was retrofited to the collection framework" + STRCRLF; strMsg += " * This Applet will teach JDK1.1 & JDK1.2 methods of the Vector Class." + STRCRLF; strMsg += " * Use the Collections.sort() to sort the Vector class" + STRCRLF; strMsg += STRCRLF; strMsg += "Values are added using addElement()." + STRCRLF; strMsg += " Vector objVector = new Vector();" + STRCRLF; strMsg += " objVector.addElement(\"#1 - Frist item\");" + STRCRLF; Vector objVector = new Vector(); objVector.addElement("Frist"); objVector.addElement("Second"); objVector.addElement("Third"); objVector.add("Hello"); //Note: add() is JDK 1.2 only. Same as addElement! objVector.add("World"); objVector.add("Hello"); strMsg += "size() & elementAt: Retrieving values" + STRCRLF; for ( int x=0; x < objVector.size(); x++ ) { strMsg += " <"+x+"> " + objVector.elementAt(x) + STRCRLF; } strMsg += "Enumeration, hasMoreElements, & nextElement: Retrieving values" + STRCRLF; java.util.Enumeration objEnumeration = objVector.elements(); while ( objEnumeration.hasMoreElements() ) { strMsg += " * " + objEnumeration.nextElement().toString() + STRCRLF; } strMsg += "Other Methods" + STRCRLF; strMsg += " * firstElement() Returns: " + objVector.firstElement() + STRCRLF; strMsg += " * lastElement() Returns: " + objVector.lastElement() + STRCRLF; strMsg += " * indexOf(Object) Example: " + objVector.indexOf("Hello") + STRCRLF; strMsg += " * indexOf(Object, Start) Example: " + objVector.indexOf("Hello",4) + STRCRLF; strMsg += " * lastIndexOf(Object) Example: " + objVector.lastIndexOf("Hello") + STRCRLF; strMsg += " * lastIndexOf(Object, Start) Example: " + objVector.lastIndexOf("Hello",4) + STRCRLF; strMsg += " * size() Returns: " + objVector.size() + STRCRLF; strMsg += " * setElementAt(), removeElementAt(), removeElement(), insertElementAt()" + STRCRLF; strMsg += " (see source code)" + STRCRLF; int intMy = 0; intMy = objVector.indexOf("Hello"); objVector.setElementAt("New Item", intMy); strMsg += " " + objVector.elementAt( intMy ) + STRCRLF; objVector.removeElementAt( intMy ); objVector.removeElement( "World" ); objVector.insertElementAt("Insert", 1); strMsg += " * New List after several methods run" + STRCRLF; objEnumeration = objVector.elements(); while ( objEnumeration.hasMoreElements() ) { strMsg += " " + objEnumeration.nextElement().toString() + STRCRLF; } strMsg += "Sorting & Searching with Collections class" + STRCRLF; strMsg += " * Order before Sort: (added 2 elements)" + STRCRLF; objVector.add("sort case test 1"); objVector.add("Sort case test 2"); objEnumeration = objVector.elements(); while ( objEnumeration.hasMoreElements() ) { strMsg += " " + objEnumeration.nextElement().toString() + STRCRLF; } strMsg += " * java.util.Collections.sort( objVector ); //JDK 1.2 Only. " + STRCRLF; strMsg += " * Ascending Order (case sensitive):" + STRCRLF; java.util.Collections.sort( objVector ); //JDK 1.2 Only. objEnumeration = objVector.elements(); while ( objEnumeration.hasMoreElements() ) { strMsg += " " + objEnumeration.nextElement().toString() + STRCRLF; } strMsg += " * java.util.Collections.sort( objVector, java.util.Collections.reverseOrder() ); //JDK 1.2 Only. " + STRCRLF; strMsg += " * Reverse order: (case sensitive)" + STRCRLF; java.util.Collections.sort( objVector, java.util.Collections.reverseOrder() ); //JDK 1.2 Only. objEnumeration = objVector.elements(); while ( objEnumeration.hasMoreElements() ) { strMsg += " " + objEnumeration.nextElement().toString() + STRCRLF; } IgnoreCase_Ascending comparatorIgnoreCase_Ascending = new IgnoreCase_Ascending(); strMsg += " * java.util.Collections.sort( objVector, comparatorIgnoreCase_Ascending ); //JDK 1.2 Only. " + STRCRLF; strMsg += " * Custom Order (not case sensitive !!!):" + STRCRLF; java.util.Collections.sort( objVector, comparatorIgnoreCase_Ascending ); //JDK 1.2 Only. objEnumeration = objVector.elements(); while ( objEnumeration.hasMoreElements() ) { strMsg += " " + objEnumeration.nextElement().toString() + STRCRLF; } strMsg += " * java.util.Collections.sort( objVector ); //JDK 1.2 Only. " + STRCRLF; strMsg += " * Ascending Order - prepare for the binary search:" + STRCRLF; java.util.Collections.sort( objVector ); //JDK 1.2 Only. objEnumeration = objVector.elements(); while ( objEnumeration.hasMoreElements() ) { strMsg += " " + objEnumeration.nextElement().toString() + STRCRLF; } strMsg += " * Using java.util.Collections.binarySearch(...); //JDK 1.2 Only. " + STRCRLF; intRow = java.util.Collections.binarySearch(objVector, "Insert"); strMsg += " Insert is at row #: " + intRow + " (Row # starts with 0) "+ STRCRLF; objVector.removeAllElements(); strMsg += "Using Wrappers & Vector: Integer Wrapper" + STRCRLF; strMsg += " * Populating the array" + STRCRLF; Integer objInteger; objVector.removeAllElements(); for ( int x=5; x >= 0; x-- ) { objVector.addElement( new Integer( x ) ); } objEnumeration = objVector.elements(); while ( objEnumeration.hasMoreElements() ) { strMsg += " " + objEnumeration.nextElement().toString() + STRCRLF; } /* Doesn't work. Need to look into the Comparator interface. strMsg += " * java.util.Collections.sort( objVector, java.util.Collections.reverseOrder()); //JDK 1.2 Only. " + STRCRLF; strMsg += " * Reverse sort:" + STRCRLF; java.util.Collections.sort( objVector, java.util.Collections.reverseOrder() ); //JDK 1.2 Only. objEnumeration = objVector.elements(); while ( objEnumeration.hasMoreElements() ) { strMsg += " " + objEnumeration.nextElement().toString() + STRCRLF; } */ //JDK 1.2 Only strMsg += "toArray( Object )" + STRCRLF; Integer [] aobjInteger = new Integer [ objVector.size() ]; objVector.toArray( aobjInteger ); for (int x=0; x < aobjInteger.length; x++ ) { objInteger = (Integer) aobjInteger[x]; //Need cast because toArray() works with data type: Object. strMsg += objInteger.toString() + ","; } return strMsg; } //---------------------------------------------------------------------------------- public void init () { //---------------------------------------------------------------------------------- super.init_Components( this.init_train() ); } //---------------------------------------------------------------------------------- public static void main( String args [] ) { //---------------------------------------------------------------------------------- javax.swing.JFrame objFrame = new javax.swing.JFrame( "Training Example JDK1.2" ); final MyVectorJdk12 applet = new MyVectorJdk12(); //create the applet. MyTrain12.main_init( objFrame, applet, args ); //Static method to setup Applet and/or application. } //main() class IgnoreCase_Ascending implements java.util.Comparator { public int compare(Object obj1, Object obj2) { int intReturn = 0; intReturn = ((String) obj1).compareToIgnoreCase((String) obj2); //Ignores Case. return ( intReturn ); } } //eoc } //eoc //eof