home *** CD-ROM | disk | FTP | other *** search
- package com.sfs.util;
-
- import java.io.IOException;
- import java.util.Enumeration;
- import java.util.Vector;
-
- public class SortableVector extends Vector {
- public static final int NOT_FOUND = -1;
- public static final int DONT_SORT = 0;
- public static final int SORT = 1;
- Sortable Comparer;
- Insertionsort Sorter;
- Object searchObject;
-
- int _sortedSearch(int var1, int var2) {
- if (var2 - var1 >= 4) {
- int var3 = var1 + (var2 - var1) / 2;
- int var4 = this.Comparer.compare(this.searchObject, ((Vector)this).elementAt(var3));
- if (var4 < 0) {
- return this._sortedSearch(0, var3);
- } else {
- return var4 > 0 ? this._sortedSearch(var3, var2) : var3;
- }
- } else {
- while(var1 <= var2) {
- if (this.Comparer.compare(this.searchObject, ((Vector)this).elementAt(var1)) == 0) {
- return var1;
- }
-
- ++var1;
- }
-
- return -1;
- }
- }
-
- public int add(Object var1) {
- if (this.Sorter != null) {
- return this.Sorter.doInsertionsort(this, var1);
- } else {
- ((Vector)this).addElement(var1);
- return ((Vector)this).indexOf(var1);
- }
- }
-
- public static void main(String[] var0) {
- SortableVector var1 = new SortableVector(1, new StringSorter());
- var1.add("Lars");
- var1.add("Dirk");
- var1.add("Frank");
- System.out.println(((Vector)var1).toString());
- if (var1.lookup("Lars") != -1) {
- System.out.println("sa contains \"Lars\".");
- }
-
- if (var1.lookup("A") == -1) {
- System.out.println("sa dont contains \"A\".");
- }
-
- try {
- System.in.read();
- } catch (IOException var2) {
- }
- }
-
- public int lookup(Object var1) {
- if (((Vector)this).size() == 0) {
- return -1;
- } else if (this.Sorter != null) {
- this.searchObject = var1;
- return this._sortedSearch(0, ((Vector)this).size() - 1);
- } else {
- Enumeration var2 = ((Vector)this).elements();
-
- for(int var3 = 0; var2.hasMoreElements(); ++var3) {
- if (this.Comparer.compare((String)var2.nextElement(), var1) == 0) {
- return var3;
- }
- }
-
- return -1;
- }
- }
-
- public int lookup(Object var1, Sortable var2) {
- Sortable var3 = this.Comparer;
- this.Comparer = var2;
- int var4 = this.lookup(var1);
- this.Comparer = var3;
- return var4;
- }
-
- public SortableVector(int var1, Sortable var2) {
- this.Comparer = var2;
- if (var1 == 1) {
- this.Sorter = new Insertionsort(var2);
- }
-
- }
- }
-