2016-06-18 6 views
1

大きな問題を説明するのではなく、私はそれをすべてスキップし、私が苦労している小さなループをリストアップします。とにかく地図のキーを印刷する必要があるので、値とキーを切り替えてキーを印刷する特別な方法を使用しています。 HashMap- javaプログラムの問題

for (int i = 0; i < elementData.length; i++){ 
    System.out.print("[" + i + "]"); 
    for (Entry<HashEntry<E>, Integer> entry : foob.entrySet()){ 
     if (entry.getValue().equals(i)){ 
      System.out.print(entry.getKey().toString()); 
     } 
    } 
} 

この

が私の目標です。それに伴い20に[0] [1] [2] [3]そのようなすべての方法を印刷し、9つの数字がランダムに括弧でそれらの数字の間に行く、ベース私のプログラムで

[0][1][email protected][2][3][4][email protected][email protected][5][6][7][8][9][email protected][10][11] 

だから、それはすべて、この機械語ルッキングものを印刷しない作るためだけでいくつかのトリックがあります: はここに私の結果です。とにかく、私は何をしなければならないのですか? 1つは[1]、2つは[4]、あるものは[9]のように見えるように見えます。 ありがとう!

答えて

2

だから、この機械語の見た目をすべて印刷しないようにするにはいくつかのやり方がありますか?

はい。

Object.toString()をオーバーライドしないクラスのインスタンスを印刷しようとしないでください。その "機械語を見ているもの"は単にObject.toString()の出力です。

しかし、私はあなたの本当のコードがこれをやっていること疑い

 if (entry.getValue().equals(i)){ 
     System.out.print(entry.toString()); 
    } 

"[email protected]"あなたはHashSet.HashEntryオブジェクトを印刷した場合、あなたが得るでしょう出力のように見えるので。 (他の可能性は、MapのキーとしてHashSet.HashEntryオブジェクトを使用したことです)

+0

これは2番目です。彼のコードを見てください:エントリ、整数>エントリ – midor

+0

これを解決するにはどうしたらいいですか?シンプルで速いハーフ・ライン・オブ・コード修正ですか?ありがとう! –

+0

'HashEntry'を印刷する代わりに、キーまたは値のコンポーネントを抽出して印刷する必要があります。しかし、これはすべて非常に奇妙に見えます。エントリに 'HashEntry'オブジェクトをキーとして持つ' Map'をなぜ持っていますか? –

関連する問題