単語ごとの出現回数を出現順に表示するには、HashMapとArryaListが必要でしょうか。
下記の例よりももっとスマートかつコード量が少なく使用するメモリの量が少ない方法があるはずです。
単語ごとの出現回数をカウントするのは、HashMapでやってみた。
・Integer以外にカウントする方法がありますでしょうか。
・出現順に表示するために出現順は、ArrayListでキー管理しましたが、HashMapで追加されたKeyの順序を覚えていればその順序で表示ができるのですが。
下記のコードをもっと改善できる方いますでしょうか。
String line = "aaa bbb ddd bbb aaa aaa ccc ddd bbb"; String token[] = line.split(" "); HashMap<String,Integer> map = new HashMap<String,Integer>(); ArrayList list = new ArrayList(); for(String key: token){ if(!list.contains(key))list.add(key); if(map.get(key) == null ){ map.put(key,new Integer(1)); }else{ map.put(key,new Integer((int)map.get(key)+1)); } } for (int i = 0; i < list.size(); i++) { StringBuffer a = new StringBuffer(); a.append(list.get(i)); a.append(" "); a.append(map.get(list.get(i))); System.out.println(a); } }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。