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)
27 return this.elementsHash.get(par1Key).add(par2Element);
30 return this.put(par1Key, par2Element);
34 public boolean addAll(K par1Key, Collection<? extends E> par2Collection)
36 return this.elementsHash.get(par1Key).addAll(par2Collection);
39 public boolean addAll(K par1Key, int par2Index, Collection<? extends E> par3Collection)
41 return this.elementsHash.get(par1Key).addAll(par2Index, par3Collection);
46 this.elementsHash.clear();
49 public boolean containsKey(K par1Key)
51 return this.elementsHash.containsKey(par1Key);
54 public boolean containsValue(K par1Key)
56 return this.elementsHash.containsValue(par1Key);
59 public boolean contains(K par1Key, E par2Element)
61 return this.elementsHash.get(par1Key).contains(par2Element);
64 public boolean containsAll(K par1Key, Collection<?> par2Collection)
66 return this.elementsHash.get(par1Key).containsAll(par2Collection);
69 public Set<java.util.Map.Entry<K, E>> entrySet()
71 return this.entrySet();
74 public K getKeyList(int par1Index)
76 return this.keysList.get(par1Index);
79 public E get(K par1Key, int par2Index)
81 return this.elementsHash.get(par1Key).get(par2Index);
84 public int indexOf(K par1Key, E par2Element)
86 return this.elementsHash.get(par1Key).indexOf(par2Element);
89 public boolean isKeysListEmpty(K par1Key)
91 return this.elementsHash.get(par1Key).isEmpty();
94 public boolean isElementsHashEmpty()
96 return this.elementsHash.isEmpty();
99 public Iterator<E> iterator(K par1Key)
101 return this.elementsHash.get(par1Key).iterator();
104 public int lastIndexOf(K par1Key, E par2Element)
106 return this.elementsHash.get(par1Key).lastIndexOf(par2Element);
109 public ListIterator<E> listIterator(K par1Key)
111 return this.elementsHash.get(par1Key).listIterator();
114 public ListIterator<E> listIterator(K par1Key, int par2Index)
116 return this.elementsHash.get(par1Key).listIterator(par2Index);
119 public Set<K> keySet()
121 return this.elementsHash.keySet();
124 public boolean put(K par1Key, E par2Element)
126 this.keysList.add(par1Key);
128 ArrayList<E> elementList = new ArrayList<E>();
129 this.elementsHash.put(par1Key, elementList);
130 return this.add(par1Key, par2Element);
133 public void putAll(Map<? extends K, ? extends ArrayList<E>> par1Map)
135 this.elementsHash.putAll(par1Map);
138 public ArrayList<E> remove(K par1Key)
140 return this.elementsHash.remove(par1Key);
143 public boolean remove(K par1Key, E par2Element)
145 return this.elementsHash.get(par1Key).remove(par2Element);
148 public E remove(K par1Key, int par2Index)
150 return this.elementsHash.get(par1Key).remove(par2Index);
153 public boolean removeAll(K par1Key, Collection<?> par2Collection)
155 return this.elementsHash.get(par1Key).removeAll(par2Collection);
158 public boolean retainAll(K par1Key, Collection<?> par2Collection)
160 return this.elementsHash.get(par1Key).retainAll(par2Collection);
163 public E set(K par1Key, int par2Index, E par3Element)
165 return this.elementsHash.get(par1Key).set(par2Index, par3Element);
168 public int sizeElementsHash()
170 return this.elementsHash.size();
173 public int sizeKeysList()
175 return this.keysList.size();
178 public int sizeElementsList(K par1Key)
180 return this.elementsHash.get(par1Key).size();
183 public List<E> subList(K par1Key, int par2FromIndex, int par3ToIndex)
185 return this.elementsHash.get(par1Key).subList(par2FromIndex, par3ToIndex);
188 public E[] toArray(K par1Key)
190 return (E[])this.elementsHash.get(par1Key).toArray();
193 public <T> T[] toArray(K par1Key, T[] par2Array)
195 return this.elementsHash.get(par1Key).toArray(par2Array);
198 public Collection<ArrayList<E>> values()
200 return this.elementsHash.values();