HI there.
My 1st post here, and already i've got a deal of questions to ask.

I believe all of u know how a typical index looks like in large or reference books. For eg. :

Acetone, 381
Acid rain, 95
Base-pairs, 1197
Dacron, 4, 856, 1245
Electron donors, 676
Elimination, 191, 215-217,227, 267

The index keys are sorted alphabetically and each key is followed by a list of page numbers.

Now I'm in the middle of making a program that will process a raw index file and generate an index.
The program will get arguments as two file names.
The first argument will stand for the name of an input raw index file and the second argument for the output index file.

The input raw index file will contain index entities in the following format:

Dacron ; 4
Acid rain ; 95
Elimination ; 191
Elimination ; 215
Elimination ; 216
Elimination ; 217
Elimination ; 227
Elimination ; 267
Acetone ; 381
Electron donors ; 676
Dacron ; 856
Base-pairs ; 1197
Dacron ; 1245

The program will process the raw index file and write to the output file the generated index as described above. For eg :
Elimination, 191, 215-217,227, 267

I'm using java.io package :

Code:
import java.io.*;
/**
* The program reads a raw index file and prints it to another file, 
* using a different format.
*/
public class IndexExample {
final static char DELIMITER = ';';
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Please supply two file names");
return;
}
try {
BufferedReader in = new BufferedReader(new
FileReader(args[0]));
PrintWriter out = new PrintWriter(new FileWriter(args[1]));
String line;
while ((line = in.readLine()) != null) {
int delimiterIndex = line.indexOf(DELIMITER);
if (delimiterIndex < 0) {
continue;
}
String argument1 = line.substring(0,delimiterIndex-1);
String argument2 = line.substring(delimiterIndex+1, line.length());
String key = (argument1).trim();
Integer pageNumber = new Integer(argument2.trim());
System.out.println("keyword = " + key + " ; page no. = " + pageNumber);
}
in.close();
out.close();
} catch (IOException e) {
/* dont bother the exception */
}
}
}
Now my question is : I'd like to try using TreeMap and TreeSet objects to represent the collection of index entries and page sets respectively. Is this achievable ?
I'm open to critics and suggestions. Feel free to give any input.