1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package zeus.util;
25
26 import java.util.*;
27
28 public class OrderedHashtable extends Hashtable {
29 protected Vector keys = new Vector();
30
31 public OrderedHashtable() {
32 super();
33 }
34 public OrderedHashtable(int capacity) {
35 super(capacity);
36 }
37 public OrderedHashtable(int capacity, float loadFactor) {
38 super(capacity, loadFactor);
39 }
40 public synchronized Object getKeyAt(int position) {
41 return keys.elementAt(position);
42 }
43 public synchronized Enumeration keys() {
44 return keys.elements();
45 }
46 public synchronized Enumeration elements() {
47 Vector data = new Vector();
48 for(int i = 0; i < keys.size(); i++ )
49 data.addElement(this.get(keys.elementAt(i)));
50 return data.elements();
51 }
52 public synchronized Object put(Object key, Object value) {
53 Object result = super.put(key,value);
54 if ( result == null )
55 keys.addElement(key);
56 return result;
57 }
58
59 public synchronized Object remove(Object key) {
60 keys.removeElement(key);
61 return super.remove(key);
62 }
63
64 public synchronized void clear() {
65 keys.removeAllElements();
66 super.clear();
67 }
68 public synchronized Object clone() {
69 return null;
70 }
71 public synchronized void reKey(Object previousKey, Object currentKey,
72 Object value) {
73 int index = keys.indexOf(previousKey);
74 keys.setElementAt(currentKey,index);
75 super.remove(previousKey);
76 super.put(currentKey,value);
77 }
78
79 public synchronized Object getObjectAt(int index){
80 return keys.elementAt(index);
81 }
82 }