Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Java (http://www.go4expert.com/forums/java/)
-   -   [Query]Using TreeMap and TreeSet object. Guidance most welcome :) (http://www.go4expert.com/forums/queryusing-treemap-treeset-object-t4568/)

Musashibo 5Jun2007 19:21

[Query]Using TreeMap and TreeSet object. Guidance most welcome :)
 
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.
:)

abhishekshahi 31Jul2007 16:32

Re: [Query]Using TreeMap and TreeSet object. Guidance most welcome :)
 
Hi,
Do you want to populate indexes and corresponding pages to TreeMap ?.
Then the answer could be,

1) create a simple map inserting all indexes and corresponding pages to the map.
and use constructor of TreeMap to create a new TreeMap using map as parameter to it.
eg,
Map map = new HashMap();
loop:
map.put(index,page);
TreeMap treeMap = new TreeMap(map);

It will simply sort your pages according to indexes in ascending order.

please let me know i have answered your question ?


All times are GMT +5.5. The time now is 00:48.