2011-04-23 4 views
0
package datastrcutures; 
import java.util.*; 

public class java_hashtable { 
     public static void ratingofcity() { 
      Hashtable CityRating = new Hashtable(); 
      CityRating.put("New York", "8"); 
      CityRating.put("Sandton", "9"); 
     } 

} 
+0

그리고이 코드로 실제로 무엇을하고 싶습니까? 값 ("8", "9")이 고유 할 것입니까? –

+0

규칙 없음 변수의 이름은 CityRating이 아니고 CityRating이어야합니다. –

+0

그리고 패키지를'datastructures'로 이름을 바꾸는 것에 대해 생각할 수도 있습니다. –

답변

2

난 당신이 거기에 오타가 있다고 생각 자바 해시 테이블의 올바른 사용법이다 :

Hashtable<String, String> cityRating = new Hashtable<String, String>(); 

Java 명명 규칙으로 개체 이름을 소문자로 시작하는 것이 좋습니다.

+1

그리고 HashMap을 살펴보십시오. http://stackoverflow.com/questions/40471/java-hashmap-vs-hashtable을 참조하십시오. – Axel

2

질문 Is this correct usage of a hashtable은 매우 주관적입니다. Map은 예제와 같이 키와 값 집합을 저장하는 데 사용됩니다. 그러나 디자인에서 고려해야 할 사항 :

  • 내지도는 스레드로부터 안전해야합니까? 그렇지 않은 경우 HashMap
  • 두 도시의 등급이 같을 수 있습니까? 그렇지 않다면 어쩌면 배열이 더 좋을까요?
  • 위 질문에 대한 답변이 ""인 경우 - 같은 등급의 모든 도시를 가져와야합니까? 이 경우에 다른 데이터 구조 마련, 또는 단순히 두 개의 맵을 유지해야 할 수도 있습니다 (도시 중 하나를 -> 평가평가 중 하나 -> 도시)
  • String 인과 확인 평가인가 - Integer을 선호하므로 비교할 수 없습니까? 또한

,이 질문의 "디자인"과 관련이없는 몇 가지 참고 사항 :

  • 이 대신 구현의 사용 컬렉션의 인터페이스를 선언 안함 -이 코드는 쉽고 변경한다 API를보다 강력하게 만듭니다.
  • 제네릭을 사용하면 코드 유형을 안전하고 읽기 쉽게 만듭니다. 예 : Map<String, Integer> cityRatings = new Hashtable<String, Integer>();
관련 문제