-5

私はハッシュマップを繰り返し処理していますが、これらの奇妙な角かっこ[]は繰り返し処理中に存在します。どのような体でも、それを取り除く方法を教えてくれますか。

ありがとう

 Iterator it = map.entrySet().iterator();

            while (it.hasNext()) {

                Map.Entry pairs = (Map.Entry)it.next();                 
                System.out.println(pairs.getKey() + " = " + pairs.getValue());                      
                Log.v("Pairs get key", pairs.getKey().toString());
                Log.v("Pairs get value", pairs.getValue().toString());
                mysection.add(pairs.getKey().toString());
                temp.add(pairs.getValue().toString());

                it.remove(); // avoids a ConcurrentModificationException

            }
4

3 に答える 3

1

コードを実行しました。

    Map<String, String> map = new HashMap<String, String>();
    map.put("AAAA", "11111");
    map.put("BBBB", "22222");
    map.put("CCCC", "33333");

    Iterator<Entry<String,String>> it = map.entrySet().iterator();

    while (it.hasNext()) {
        Entry<String, String> pairs = it.next();                 
        System.out.println(pairs.getKey() + " = " + pairs.getValue());                      
        System.out.println("Pairs get key: "+pairs.getKey().toString());
        System.out.println("Pairs get value: "+pairs.getValue().toString());
        it.remove(); // avoids a ConcurrentModificationException
    }

出力は

AAAA = 11111
Pairs get key: AAAA
Pairs get value: 11111
BBBB = 22222
Pairs get key: BBBB
Pairs get value: 22222
CCCC = 33333
Pairs get key: CCCC
Pairs get value: 33333

唯一の違いは、マップにどのデータを入れているのかわからないことです。リストを配置すると、JavaがtoString()メソッドを出力するため、[]記号が出力されます。これが、リストの表示方法です。

于 2012-05-11T17:43:23.880 に答える
1

コードがジェネリックスを使用していない部分と、実際に「予期しない」出力を提供していない部分について詳しく説明し、問題が実際に何であるかを把握し、3つの状況をリストします。あなたは「これらの奇妙なシンボル」を得ることができます:

  1. マップのキーまたは値は、ある種のコレクションです。次に、コレクションのtoStringメソッドはその内容を出力します。たとえば、、[1]または[1,2,3]
  2. マップのキーまたは値は、何かの配列です。次に、ObjecttoStringメソッドはオブジェクトタイプとアドレスを出力します。たとえば[Ljava.lang.String;@19821f、文字列の配列です。
  3. マップのキーまたは値は、Stringsが含まれるs、またはメソッドがsを出力[]する他のタイプのオブジェクトです。toString[]
于 2012-05-11T17:34:57.130 に答える
-1

わかりました、答えがわかりました。問題は、コンソールに表示されたときにマップが表示され、[]記号が表示されることでした。したがって、これを回避するには、この実装ではなく、別の実装を使用してマップを反復処理します。

于 2012-05-15T08:38:44.637 に答える