2012-11-09 4 views
0

저는 해쉬 맵 중 키가 문자열이고 값이 정수일 수있는 벡터가 필요합니다. Hashmaps의 벡터에 특정 키가 이미 있는지 여부를 확인할 수 있습니까? 그렇다면 해당 키의 값을 1 씩 증가시킵니다.자바에서 벡터 벡터로 작업하기

내가 달성하고자하는 것은 단어가 문서에서 발생하는 횟수를 세는 것입니다. 내 생각에 단어가 발생하는 횟수를 저장하기 위해 HashMap을 사용할 수있었습니다. 그러나 내 벡터에 새지도를 추가하기 전에 내 벡터에 이미 주어진 단어가있는지도가 있는지 확인하고 싶습니다. 내 벡터에 주어진 단어가있는지도가 있으면 값 필드를 증가시킵니다 (이 경우 numOfTimesOccurredSoFar).

이것이 가능합니까?

+0

예. 하나의 맵만 필요합니다.

+1

왜 HashMaps의 Vector가 필요합니까? 설명에 따르면 단일 HashMap이 훨씬 더 나은 솔루션이 될 것입니다. 이렇게하면 HashMaps의 전체 벡터를 조작하려고 할 때 발생하는 복잡성을 피할 수 있습니다. –

답변

2

내가하고 싶은 것을 오해하지 않는 한, 단일지도를 사용하여 단어를 단어 수로 매핑 할 수있는 경우 벡터를지도에 저장해야 할 이유가 없습니다. 각 단어에 대해지도에 해당 단어가 키로 있는지 확인한 다음 키에 해당 단어가 있으면 그 단어에 매핑 된 값에 1을 더하십시오. 단어가 아직지도에 없으면 새로운 키 - 값 쌍을 추가하십시오.

0
import java.util.Map; 
import java.util.TreeMap; 
public class So13315440 { 
    void add(String word) { 
     if(map.containsKey(word)) 
      map.put(word,map.get(word)+1); 
     else map.put(word,1); 
    } 
    void run() { 
     add("foo"); 
     add("foo"); 
     add("bar"); 
     System.out.println(map); 
    } 
    public static void main(String[] args) { 
     new So13315440().run(); 
    } 
    Map<String,Integer> map=new TreeMap<String,Integer>(); 
} 
관련 문제