1 package pcc.chemicraft.util;
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.HashMap;
6 import java.util.Iterator;
8 import java.util.ListIterator;
12 public class ListHash<K, E>
15 * @author Ponkotate version:1.0.0 dev
17 * Create ArrayList in HashMap.
20 protected ArrayList<K> keysList = new ArrayList<K>();
21 protected HashMap<K, ArrayList<E>> elementsHash = new HashMap<K, ArrayList<E>>();
23 public boolean add(K par1Key, E par2Element)
26 return this.elementsHash.get(par1Key).add(par2Element);
27 } catch (Exception e) {
28 return this.put(par1Key, par2Element);
32 public boolean addAll(K par1Key, Collection<? extends E> par2Collection)
34 return this.elementsHash.get(par1Key).addAll(par2Collection);
37 public boolean addAll(K par1Key, int par2Index, Collection<? extends E> par3Collection)
39 return this.elementsHash.get(par1Key).addAll(par2Index, par3Collection);
44 this.elementsHash.clear();
47 public boolean containsKey(K par1Key)
49 return this.elementsHash.containsKey(par1Key);
52 public boolean containsValue(K par1Key)
54 return this.elementsHash.containsValue(par1Key);
57 public boolean contains(K par1Key, E par2Element)
59 return this.elementsHash.get(par1Key).contains(par2Element);
62 public boolean containsAll(K par1Key, Collection<?> par2Collection)
64 return this.elementsHash.get(par1Key).containsAll(par2Collection);
67 public Set<java.util.Map.Entry<K, E>> entrySet()
69 return this.entrySet();
72 public K getKeyList(int par1Index)
74 return this.keysList.get(par1Index);
77 public E get(K par1Key, int par2Index)
79 return this.elementsHash.get(par1Key).get(par2Index);
82 public ArrayList<E> get(K par1Key) {
83 return this.elementsHash.get(par1Key);
86 public int indexOf(K par1Key, E par2Element)
88 return this.elementsHash.get(par1Key).indexOf(par2Element);
91 public boolean isKeysListEmpty(K par1Key)
93 return this.elementsHash.get(par1Key).isEmpty();
96 public boolean isElementsHashEmpty()
98 return this.elementsHash.isEmpty();
101 public Iterator<K> iterator()
103 return this.keysList.iterator();
106 public Iterator<E> iterator(K par1Key)
108 return this.elementsHash.get(par1Key).iterator();
111 public int lastIndexOf(K par1Key, E par2Element)
113 return this.elementsHash.get(par1Key).lastIndexOf(par2Element);
116 public ListIterator<E> listIterator(K par1Key)
118 return this.elementsHash.get(par1Key).listIterator();
121 public ListIterator<E> listIterator(K par1Key, int par2Index)
123 return this.elementsHash.get(par1Key).listIterator(par2Index);
126 public Set<K> keySet()
128 return this.elementsHash.keySet();
131 public boolean put(K par1Key, E par2Element)
133 this.keysList.add(par1Key);
135 ArrayList<E> elementList = new ArrayList<E>();
136 this.elementsHash.put(par1Key, elementList);
137 return this.add(par1Key, par2Element);
140 public void putAll(Map<? extends K, ? extends ArrayList<E>> par1Map)
142 this.elementsHash.putAll(par1Map);
145 public ArrayList<E> remove(K par1Key)
147 return this.elementsHash.remove(par1Key);
150 public boolean remove(K par1Key, E par2Element)
152 return this.elementsHash.get(par1Key).remove(par2Element);
155 public E remove(K par1Key, int par2Index)
157 return this.elementsHash.get(par1Key).remove(par2Index);
160 public boolean removeAll(K par1Key, Collection<?> par2Collection)
162 return this.elementsHash.get(par1Key).removeAll(par2Collection);
165 public boolean retainAll(K par1Key, Collection<?> par2Collection)
167 return this.elementsHash.get(par1Key).retainAll(par2Collection);
170 public E set(K par1Key, int par2Index, E par3Element)
172 return this.elementsHash.get(par1Key).set(par2Index, par3Element);
175 public int sizeElementsHash()
177 return this.elementsHash.size();
180 public int sizeKeysList()
182 return this.keysList.size();
185 public int sizeElementsList(K par1Key)
187 return this.elementsHash.get(par1Key).size();
190 public List<E> subList(K par1Key, int par2FromIndex, int par3ToIndex)
192 return this.elementsHash.get(par1Key).subList(
197 public E[] toArray(K par1Key)
199 return (E[])this.elementsHash.get(par1Key).toArray();
202 public <T> T[] toArray(K par1Key, T[] par2Array)
204 return this.elementsHash.get(par1Key).toArray(par2Array);
207 public Collection<ArrayList<E>> values()
209 return this.elementsHash.values();