2016-10-13 1 views
-1

変数値をハッシュマップ値で直接チェックする必要があります。javaのハッシュマップデータで変数値を確認する

私のhashmap値にはstringの両方に2つのエントリがあり、変数値をhashmapの最初のエントリでチェックする必要があります。

コードの小バージョンは上記です。

HashMap<String , String> directory = new HashMap<String , String>(); 
    directory.put("AFG","Afghanistan"); 
    directory.put("GBR","United Kingdom of Great Britain and Northern Ireland"); 
    directory.put("IDN","Indonesia"); 
    directory.put("IND","India"); 

私は私が知っておくべきことを、ユーザのvalue.Thenを取得するために、スキャナのクラスを使用していた次のつまりなどAFG、GBR、

であるハッシュマップの最初のエントリでこのユーザーの値を比較する方法であるサンプルコードプログラム全体は次のとおりです。あなたは、単に

directory.get(name); 

が必要

import java.util.*; 

public class hashmapdemo { 
public static void main(String args[]) { 

    HashMap<String , String> directory = new HashMap<String , String>(); 
    directory.put("AFG","Afghanistan"); 
    directory.put("GBR","United Kingdom of Great Britain and Northern Ireland"); 
    directory.put("IDN","Indonesia"); 
    directory.put("IND","India"); 

    Scanner sc = new Scanner(System.in); 
    String name = sc.nextLine(); 
    System.out.println(name); 

    // comparing logic ? 

} 
} 
+0

?キーまたは値? – Saravana

+1

ハッシュマップに順序はありません。順序が重要な場合は、他のデータ構造を調べる必要があります。 –

+0

ユーザーの入力はINDなどのキーパーツになります。ハッシュマップ値と比較する必要があります@Saravana –

答えて

0

まずなどの他の不必要なメソッドを呼び出すよりも優れた性能を持っている

String countryName = directory.get(name); 
if (countryName != null) { 
    // use your countryName variable 
} 

、あなたは確認するにNullPointer例外を防ぐためには、あなたのHashMapは、ユーザー入力が含まれていますキー:

directory.containsKey(key)

それが成功した場合、あなたは、対応するキーの値を返すことができます。ユーザーの入力がどうなるか

return directory.get(key);

String key = sc.nextLine(); 


     if(directory.containsKey(key)) 
     { 
      return directory.get(key); 
     } 
0

これはTを返します。彼は国の名前。 NullPointerExceptionがないようにするために

:これはdirectory.containsKey(name);

+1

なぜあなたdownvoteしますか? – hofmeister

+0

私はマップに直接アクセスしようとする前にキーが含まれているかどうかを確認する必要があるので、私は推測します。 – Jacob

+0

キーが存在しない場合、directory.get(name)を呼び出すとNullPointerExceptionがスローされます。値がNULLであるかどうかを確認する前にプログラムがエラーになります –

関連する問題