인트벡터맵 (IntVectorMap)

인트벡터맵 (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)));
 }
}