View Javadoc
1 /* 2 * Created on 2003-6-10 16:21:22 by joel guo 3 * 4 * vTradEx Information Technology Inc. 5 */ 6 package com.cyclops.dbdigger.util; 7 import java.util.ArrayList; 8 import java.util.Collection; 9 import java.util.Comparator; 10 import java.util.HashMap; 11 import java.util.Iterator; 12 import java.util.List; 13 import java.util.Map; 14 import java.util.Set; 15 import java.util.TreeSet; 16 /*** Add description <font color="red">HERE</font>! 17 * 18 * @author <a href="mailto:joeblack.guo@vtradex.com">joel guo</a> 19 * @since 2003-6-10 16:21:22 20 */ 21 public class ArrayMap extends HashMap { 22 private class KeyComparator implements Comparator { 23 /*** Override method compare() of super class 24 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) 25 */ 26 public int compare(Object o1, Object o2) { 27 return keys.indexOf(o1) - keys.indexOf(o2); 28 } 29 } 30 private KeyComparator keyComparator = new KeyComparator(); 31 private List keys = new ArrayList(); 32 /*** Override method clear() of super class 33 * @see java.util.Map#clear() 34 */ 35 public void clear() { 36 keys.clear(); 37 super.clear(); 38 } 39 /*** Override method keySet() in super class 40 * @see java.util.Map#keySet() 41 */ 42 public Set keySet() { 43 TreeSet ts = new TreeSet(keyComparator); 44 ts.addAll(keys); 45 return ts; 46 } 47 /*** Override method put() of super class 48 * @see java.util.Map#put(java.lang.Object, java.lang.Object) 49 */ 50 public Object put(Object key, Object value) { 51 if (keys.contains(key)) { 52 keys.remove(key); 53 } 54 keys.add(key); 55 return super.put(key, value); 56 } 57 /*** Override method putAll() of super class 58 * @see java.util.Map#putAll(java.util.Map) 59 */ 60 public void putAll(Map t) { 61 for (Iterator i = t.keySet().iterator(); i.hasNext();) { 62 Object key = (Object) i.next(); 63 Object value = t.get(key); 64 put(key, value); 65 } 66 } 67 /*** Override method remove() of super class 68 * @see java.util.Map#remove(java.lang.Object) 69 */ 70 public Object remove(Object key) { 71 keys.remove(key); 72 return super.remove(key); 73 } 74 /*** Override method values() of super class 75 * @see java.util.Map#values() 76 */ 77 public Collection values() { 78 List ret = new ArrayList(); 79 for (Iterator i = keys.iterator(); i.hasNext();) { 80 Object key = (Object) i.next(); 81 ret.add(get(key)); 82 } 83 return ret; 84 } 85 }

This page was automatically generated by Maven