// Storing input strings in alphabetical order.
// Elena's solution

// need this import for reading data:
import java.io.*;
import java.util.*;

public class VectorAlphabet {

    public static void main (String [] args)  throws IOException {
	// Create a buffered reader
	// need only one buffered reader for all your reading
	BufferedReader in = new BufferedReader(
			new InputStreamReader(System.in));
	// string for storing a line of input
	String line;

	System.out.print("Please enter a string: "); 
	line = in.readLine();

	Vector v = new Vector();
	
	while (!line.equals("bye")) {
	    int size = v.size();
	    int index = size; // index at which the string will be inserted
	    // initially set to size (the string is inserted at the end)
	    
	    // the loop to find the correct place to insert
	    for (int i = 0; i < size; ++i) {
		String current = (String) v.elementAt(i);

		// if line goes before current in aplphabetical
		// order, it should be inserted at the current index
		// the condition index == size guarantees that
		// the index is set only once -- the first time
		// line.compareTo(current) < 0 is true
		if (line.compareTo(current) < 0 && index == size) {
		    index = i;
		}
	    }
	    // inserting the string at the correct index
	    v.add(index, line);
	    System.out.print("Please enter a string: "); 
	    line = in.readLine();
	}

	int size = v.size(); 
	for (int i = 0; i < size; ++i) {
	    System.out.println(v.elementAt(i));
	}
    }
}

This is an example from CSci 1211 course.

The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.