2011-10-19 8 views
0

나는 시스템에 데이터를 추가하기 위해 트리 맵을 사용했다. 사용자가 시스템에 추가 된 오브젝트 내에서 특정 값을 변경할 수 있기를 바랍니다. 사용자가 변경하고자하는 값을 선택하려면이 방법을 사용하여 화면에 인쇄했습니다.TreeMap에서 특정 요소에 액세스하는 방법?

for(Employee employee : employeeMap.values()) 
{ 
    System.out.println("Employe no :" +x+": "+employee); 
    x++; 
} 

그런 다음 사용하여 사용자가 내가 시도 선택했다는 트리 맵의 개체 요소를 액세스하기 위해이 : 나는 성공적으로 arraylists와 함께 사용했을 것입니다,하지만은 않습니다

System.out.println("this employee @@@@@##### is no: "+employeeMap.get(x)); 

작동하지 않는 것 같습니다.이 접근법을 사용할 때 모든 값이 null 인 것처럼 보입니다.

좀 더 나은 방법을 보여줄 수 있습니까?

+0

값에 액세스하기 전에 데이터를 employeeMap에 넣었습니까? –

+0

예이게 같네 \t theEmployee = 새 직원 (randomIDno, fName, sName, gender, dPayLevel); \t \t \t \t employeeMap.put (randomIDno, theEmployee); – Binyomin

+0

정확히 'x'는 무엇입니까? – aldrin

답변

0

은 기본적으로 당신은 당신의 조각, employeeMap.get (x)를 'x'를 나던 키 모양에서

하여 맵 값에 액세스 할 수 있습니다. 당신이 employeeMap에게 당신이 값을 나중에

for (Employee employee : employeeMap.values()) { 
    System.out.println("Employe no :" +employee.getRandomIDno()+": "+employee); 
    Object thekey = employee.getRandomIDno(); 
} 

과를 검색하는 데 사용할 수 있습니다 키로 직원 ID를 사용하고 있기 때문에

업데이트

을 채우는 방법을 우리에게 보여

System.out.println("this employee @@@@@##### is no: "+employeeMap.get(thekey));  
+0

마찬가지로 \t theEmployee = new Employee (randomIDno, fName, sName, gender, dPayLevel); \t \t \t \t employeeMap.put (randomIDno, theEmployee); – Binyomin

2

맵의 항목에 액세스 할 때 ArrayLists와 같은 키가 아닌 키를 사용해야합니다. 그 키가 존재하지 않으면, 당신은 당신이보고있는 null을 돌려받을 것이다. 예를 들어, for 루프의 employee 개체에 이미 액세스 할 수 있으므로지도에서 다시 get 필요가 없습니다.

대신 employeeMap.entrySet()을 사용하여 키와 값을 한 번에 반복 해보고 싶은 경우 employeeEntry.getKey()과 같은 말을하면 주어진 항목에 해당하는 키가 무엇인지 확인할 수 있습니다 (예 : 제네릭 제외). 나는 당신의 키의 유형을 알 수 없기 때문에, 또한 키를 가정하면 직원 번호)입니다 :

for(Map.EntrySet employeeEntry : employeeMap.entrySet()) { 
    System.out.println("Employee no :" + employeeEntry.getKey() +": " + employeeEntry.getValue()); 
} 
+0

덕분에 나는 이것을 하나의 시도로 줄 것이다 – Binyomin

0

지도 키 값이 pair.you 그냥 당신이 X를 사용하는 것처럼 (어떤 인덱스를 사용하여 맵에서 값을 액세스 할 수있다 그리고 그것을 루프 x ++에서 증가시킵니다.) 데이터를 삽입하는 동안 입력 한 키를 사용해야합니다. 나는 너에게 다음과 같은 방법을 제안 할 것이다.

for(String key:employeeMap.keySet()) 
{ 
    System.out.println("Employe no :" +x+": "+employee.get(key)); 
    x++; 
} 
+0

나는 내 생각을 좋아하지 만 내 시스템에 입력 할 때 오류가 발생한다 "기호 메소드가 int를 얻을 수 없다" 키의 값을 문자열에서 int로 변경했다. int 값으로 입력되고있다. – Binyomin

관련 문제