リストに含まれている単語の数をカウントするjavaのクラスを書いてみた。
import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class WordCounterTable { private Map counterTable; public WordCounterTable(){ this.counterTable = new HashMap(); } public void count(List list){ for(Iterator ite = list.iterator();ite.hasNext();){ Object target = ite.next(); if(this.counterTable.get(target) == null){ this.counterTable.put(target,new Integer(1)); }else{ this.counterTable.put(target, new Integer( ((Integer)this.counterTable.get(target)).intValue()+1) ); } } } public String printTableValue(){ StringBuffer buf = new StringBuffer(); for(Iterator ite = this.counterTable.keySet().iterator();ite.hasNext();){ Object key = ite.next(); buf.append("word:"+key+" count:"+this.counterTable.get(key)+"\n"); } return buf.toString(); } }
HashTableを使うのはいんちきくさいような気がするけど、プログラムの簡潔さを優先したいから気にしないことにする
2017年7月1日
Java8から導入されたStreamAPIを使った実装をアップしました
単語の数をカウントするプログラム part2
この記事で記載したプログラムより数段洗練されたものとなっていますので、これからJavaを学ぶ人はリンク先のプログラムを参照するようにしてください