|
DoubleStringMap |
|
/* ** Caramel - Core Java Toolbox ** Copyright (c) 2001, 2002, 2003 by Gerald Bauer ** ** This program is free software. ** ** You may redistribute it and/or modify it under the terms of the GNU ** General Public License as published by the Free Software Foundation. ** Version 2 of the license should be included with this distribution in ** the file LICENSE, as well as License.html. If the license is not ** included with this distribution, you may find a copy at the FSF web ** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the ** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA. ** ** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND, ** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR ** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY ** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR ** REDISTRIBUTION OF THIS SOFTWARE. ** */ package caramel.util; import java.util.*; public class DoubleStringMap { private HashMap _table1; private HashMap _table2; /** * quick and dirty implementatation of a "double" map that allows lookups by * either key or value and that keeps the insertion order for values */ private ArrayList _values; public DoubleStringMap() { _values = new ArrayList(); _table1 = new HashMap(); _table2 = new HashMap(); } public String get( String key ) { return ( String ) _table1.get( key ); } public String getKeyForValue( String key ) { return ( String ) _table2.get( key ); } public String[] getValues() { return ( String[] ) _values.toArray( new String[0] ); } public void prepend( String key, String value ) { _values.add( 0, value ); _table1.put( key, value ); _table2.put( value, key ); } public void put( String key, String value ) { _values.add( value ); _table1.put( key, value ); _table2.put( value, key ); } }
|
DoubleStringMap |
|