次の配列のc.intValue()が回数表示されるのですが、
あまりにデータが多いため、見やすくするために数が大きい順に表示したいと思います。
for文でlengthを求め・・・って言うのは分かるのですが、
c.intValue()で表示にしているので、どう書けばいいか分かりません。
以下ソースです。
・・・・・
HashMap<String,Integer> hsFlow = new HashMap<String,Integer>();
<中略>
Iterator<String> ir = hsFlow.keySet().iterator();
while(ir.hasNext()){
String f = ir.next();
Integer c = hsFlow.get(f);
if(c==null) c = new Integer(0);
System.out.println("経路"+f+":"+c.intValue()+"回");
具体的なソースコードを教えていただけると嬉しいです。
ご回答よろしくお願いします。
No.2ベストアンサー
- 回答日時:
1.18行目まではデータをHashMap<String,Integer>に次々突っ込んでいるだけ。
2.今回はソートだから影響ないけど、元々のmapを弄りたくないけど、データを色々変更して遊びたいときのために、HashMap<String,Integer>のコンストラクタに渡して複製した。
http://ideone.com/vO6J6
と
http://ideone.com/0flik
の違いを見るとわかるかも。
HashMapに格納されたキーの順番で格納順じゃないんだね
3.19行目と20行目は、Collection.sortに渡せるArrayList<E>に移し変えるため、entrySet()はCollection<E>なので渡せる。
4.Collection.sort(list,Collection.reverseOrder(new SampleSort()))でソート。一応SampleSortは小さい順で並び替えるように作った。ソッチの方が慣れているから。別にcompareToの中の戻り値を-1倍すれば、別にreverseOrderをする必要はない。
5. 24行目から27行目は大きな順に並びかえられているリストを出力しているだけ。
#質問者の事例と完全一致じゃないけど、その辺は自分で脳内補完できるよなあ?と思うのでこっちのやりやすい事例で行った。
====================
>経路と回数をパックにするクラスを定義する。
でもいいんだけど、質問の段階で19行目の段階にいて、
おそらく、ideone.comでは
org.apache.commons.collections.CollectionUtils
は使えないし、使えたとしても、質問者からjarファイルどうやって使うの云々言われると面倒。となるとループを書くハメになるからイヤだなと。だからもとのMap.Entry<String,Integer>を再利用した。
No.1
- 回答日時:
1.経路と回数をパックにするクラスを定義する。
2.whileループの中で、1で定義したクラスの配列に(あるいはArrayListに)格納。
3.Array.sortでソート。
*ソート順は回数、経路となると思います。そのようにソートできるようにComparatorを実装してください。
この回答への補足
ご回答ありがとうございます。
申し訳ないのですが、詳しいソース等ご教授願いませんでしょうか?
ど素人なもので、
//経路と回数をパックにするクラスを定義する。
もどうすればいいか分からず、ましてComparatorも使用したことがなく、調べても使い方が分かりませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBA 配列を使ったコードに直していただけますか 4 2023/05/06 15:18
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[Ljava.lang.Stringってなんですか
-
配列の中に複数存在する数がい...
-
『args[]』とは?
-
Javaで文字と数字が混ざったも...
-
この警告はどうすれば?
-
Java配列の問題を教えてくださ...
-
ランダムでのboolean値の与え方
-
配列で、値の入っている要素数...
-
javaについて
-
MAPの配列・・・???!!!
-
2次元配列のコピー
-
【C#】ハッシュテーブル(連想...
-
n番目に大きな値を探索する
-
CSVファイルの、列だけ取得したい
-
main(String[] args) の args...
-
java
-
セッションを使ったint型の値の...
-
動的配列確保
-
多次元配列はなぜ必要???
-
String型をbyte型へ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[Ljava.lang.Stringってなんですか
-
この警告はどうすれば?
-
C#で動的配列Listの中身をListB...
-
javaで大容量テキストファイル...
-
C言語でunsigned char配列を連...
-
n番目に大きな値を探索する
-
JavaのBase64デコードで正しく...
-
配列で、値の入っている要素数...
-
Javaで文字を漢字であるか否か...
-
配列の中に複数存在する数がい...
-
データベースから取得したデー...
-
【C#】ハッシュテーブル(連想...
-
Javaで文字と数字が混ざったも...
-
cloneメソッドについて (java)
-
ArrayListからBean配列に値をセ...
-
配列をセッションに割り当てた後で
-
int配列をbyte配列に変換
-
セッションを使ったint型の値の...
-
javamailで複数人にメールを送...
-
【Ajax通信&Java】配列の受け取...
おすすめ情報