2017-05-18 4 views
-6

자바 해시 맵 - 키 입력 값 쌍을 표준 입력에서 해시 맵 구조로 직접 읽을 수 있습니까?Java Hashmap - Stdin에서 HashMap으로의 키 값 쌍

4 3 
1 1 
3 2 
2 2 
4 3 

내 생각에

말 사용자 유형이 반복 넣어와 루프의 일종을하는 것입니다.

+4

예, 가능합니다. 시도해 봤어? 너 붙어있어? 귀하의 질문은 무엇인가? – shmosel

+2

"제 아이디어는 반복 된 반복을 사용하여 일종의 반복을하는 것입니다." --- 좋은 생각이야. 왜 그걸하려고하지 그래? 막히면 돌아와서 가지고있는 문제에 대해 질문하십시오. – azurefrog

답변

-1

int 또는 String으로 추가 할 방법을 모르지만 Object 여야합니다.

class Inp { 
    public void scan() { 
     Scanner sc = new Scanner(System.in); 

     HashMap<Integer,Integer> map = new HashMap<Integer,Integer>(); 
     while (true) { 
      String sr = sc.nextLine(); 
      String[] tk = sr.split(" "); 
      Integer key = 0, value = 0; 
      try { 
       key = Integer.parseInt(tk[0]); 
       value = Integer.parseInt(tk[1]); 
      } 
      catch (NumberFormatException e) { 
       break; 
      } 
      map.put(key,value); 
     } 

    } 

    public static void main(String[] args) { 
     Inp inp = new Inp(); 
     inp.scan(); 

    } 
} 

VERRRRYYYY 오랫동안 바람 but지만 아이디어를 얻었습니다. 루프를 벗어나는 정수 이외의 것을 넣으십시오. 당신이 원하는 걸 몰랐어요.

+0

'try' 블록 내에'map.put (key, value)'를 쓰지 않는 이유는 무엇입니까? 이렇게하면 try 블록 내에서 두 정수를 선언하고 범위를 가능한 작게 유지할 수 있습니다. 실제로 try 블록 내에서 모든 '논리'를 수행 할 수 있습니다. 해를 끼치 지 않을 것입니다 ... –

+0

왜 안됩니다. 나는 방금 그것을 던졌다. 나는 단지 NumberFormatException을 강조했는지 확인하기를 원했다. – jiveturkey

+0

-1 때문에 ... 작동하지 않습니까? – jiveturkey