On Jul 17, 11:37 am, Alessio Stalla <alessiosta...@gmail.com> wrote:
On Jul 17, 11:30 am, Philipp <djb...@gmail.com> wrote:
Hello,
I'm looking for a collection which behaves like a two column table
(ordered key - value pairs, key not unique). Is there such a thing
either in the JRE or Apache collections?
A list of tuples?
class Tuple<K, V> {
  K key;
  V value;
}
It's not exactly clear what you want: "ordered" pairs - ordered how?
By order of insertion, or by Comparable/Comparator?
key - value pairs: do you need collection.get(key) ==> value?
collection.indexOf(key)? etc.
You could have to subclass some java.util.*List class.
Yes sorry I forgot to mention that I would like to have it implement
Map. Thus have something like a Collection which at the same time
implement List and Map (which is not possible).
I did produce such a thing myself, but maybe I overlooked a more
standard interface and implementation.
// comments stripped for brevity
public interface TableMap extends Map {
  // from List
  public Object set(int index, Object value);
  public Object get(int index);
  public Object remove(int index);
  // all methods from Map but in particular:
  /** Returns the first Object for that key */
  public Object get(Object key);
  /** Removes the first entry for that key */
  public Object remove(Object key);
  /** Throws UnsupportedOperationException */
  public Set entrySet();
  // additionally
  public Object getKey(int index);
  public void removeAll(Object key);
  public List keyList();
  public List valueList();
}
On second thought, this seems way too strange to be in any standard
lib. I'll just have to stick with my implementation.
Comparable<? super T>" and make sure you cover the declared methods.