// Near Infinity - An Infinity Engine Browser and Editor
// Copyright (C) 2001 - 2005 Jon Olav Hauglid
// See LICENSE.txt for license information
package org.infinity.util;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public final class IntegerHashMap<V> extends HashMap<Integer, V>
{
public IntegerHashMap()
{
super();
}
public IntegerHashMap(int initialCapacity)
{
super(initialCapacity);
}
public IntegerHashMap(int initialCapacity, float loadFactor)
{
super(initialCapacity, loadFactor);
}
public IntegerHashMap(Map<Integer, ? extends V> m)
{
super(m);
}
public int[] keys()
{
Set<Integer> set = keySet();
int[] result = new int[set.size()];
Iterator<Integer> iter = set.iterator();
int i = 0;
while (iter.hasNext() && i < result.length) {
result[i++] = iter.next().intValue();
}
return result;
}
@Override
public String toString()
{
StringBuffer buf = new StringBuffer();
buf.append('{');
Set<Map.Entry<Integer, V>> set = entrySet();
Iterator<Map.Entry<Integer, V>> i = set.iterator();
boolean hasNext = i.hasNext();
while (hasNext) {
Map.Entry<Integer, V> e = i.next();
int key = e.getKey();
V value = e.getValue();
buf.append(key);
buf.append('=');
if (value == this)
buf.append("(this Map)");
else
buf.append(value);
hasNext = i.hasNext();
if (hasNext)
buf.append(", ");
}
buf.append('}');
return buf.toString();
}
}