인트벡터맵 (IntVectorMap)
public class IntVectorMap {
private HashMap innerMap = new HashMap();
private final int NULL_INT_VALUE = -1;
public void putToVector(String key, int value) {
if (key == null || key.length() == 0) {
return;
}
key = key.toUpperCase();
// 키가 존재하면 벡터를 추가한다.
if (innerMap.get(key) != null) {
((Vector) innerMap.get(key)).add(value);
} else {
//키가 존재하지 않으면 벡터 생성.
Vector newVector = new Vector();
newVector.add(value);
innerMap.put(key, newVector);
}
}
public int getVectorSize(String key) {
Vector vector = getVector(key);
if (vector == null || vector.size() == 0) {
return 0;
} else {
return vector.size();
}
}
public Vector getVector(String key) {
if (key == null || key.length() == 0) {
return null;
}
key = key.toUpperCase();
if (innerMap.get(key) == null) {
return null;
}
Vector vector = (Vector) innerMap.get(key);
if (vector == null || vector.size() == 0) {
return null;
} else {
return vector;
}
}
public int getVectorValue(String key, int index) {
if (key == null || key.length() == 0) {
return NULL_INT_VALUE;
}
key = key.toUpperCase();
if (innerMap.get(key) == null) {
return NULL_INT_VALUE;
}
Vector vector = (Vector) innerMap.get(key);
if (vector == null || vector.size() == 0) {
return NULL_INT_VALUE;
}
int lastIdx = vector.size() – 1;
if (lastIdx < index) {
return NULL_INT_VALUE;
}
return Integer.parseInt(String.valueOf(vector.get(index)));
}
}