0

結果セットを格納するために Hashmap を使用しています。

HashMap<String,Integer> hMap = new HashMap<String,Integer>();

String existsUser = "select NAME" +" from Details where MEMID =" + memid;
rs = stmt.executeQuery(existsUser);

サンプルDBです

名前:ジャック・ジル・ジョン・ジャック

各名前の出現回数を個別に表示する必要があります。どうすればよいですか? 例: ジャック-2 、ジル -1

私は現在、このコードを持っています:

 if(count == 0) {
hMap.put(rs.getString("NAME"),1); //get the string 

   }else {
hMap.put(rs.getString("NAME"),count +1); 
   }        
4

4 に答える 4

2

別の SQL クエリから実行できます。

String existsUser = "SELECT name, count(*) AS occurances FROM Details WHERE memid = " + memid + " GROUP BY name";

結果セットには、「name」と「occurance」の 2 つの列があります。欲しいものはすぐに手に入る。

于 2013-06-20T00:06:47.807 に答える
0
Map<String, Integer> names = new HashMap<String, Integer>();
// sample loop for illustration; loop over your ResultSet if you wish
for String name : results) {
    if (names.containsKey(name) {
       int count = names.get(name);
       names.put(name, ++count);
    } else {
        names.put(name, 1);
    }
}
于 2013-06-19T23:57:06.617 に答える
0

ハッシュマップは重複できません...

マップで重複を追跡する場合は、アイテムをキーとして使用し、発生を値として使用します。

キーが複数回表示されるたびに、カウンター (キーの値) が増加します。

見たことがない場合は、挿入してキーを 1 に設定します。

于 2013-06-19T23:57:24.237 に答える