0

コードは次のようになります。

Map<string , list> qsnMap =new hashmap <string , list>;
If(qsnMap !=null){
    Iterator<Map.Entry<string , list>> entries = 
    qsnMap.entrySet().iterator();
    While(entries.hasNext()){
        Map.Entry<string , > entry = entry.next();
        String mapKey = entry.getKey();
    }
}

データがこのように表示されるとします

「123、abc」「abc」
「234、gdd」「gdd」
「434、dhd」「dhd」
「123、mnb」「mnb」

ここでは、数値をキーとして使用し、while ループでマップを使用して一意のキーの数を取得します。つまり、上記のデータの場合、カウントは 3 にする必要があります。

これがより理解しやすいことを願っています。

4

7 に答える 7

2

には重複キーが含まれてMapいないqsnMap.size()ため、一意のキーの数を取得するために使用できます。

于 2013-08-29T09:57:11.747 に答える
1

マップ内のキーは、定義上一意です。マップは重複キーを許可しません!

ここで読むことができます、ここ(ドイツ語)、ここ

于 2013-08-29T09:59:56.120 に答える
1

ドキュメントによると、既にマップにあるキーで新しい値を入力しようとすると、値が新しい値に置き換えられ、古い値が返されます。

したがって、キーと値のペアのサイズ/長さ/数を知りたい場合は、次のようにして見つけることができます

mapObject.size();

オラクルのドキュメントから>>

public V put(K key, V value) 指定された値をこのマップ内の指定されたキーに関連付けます。マップに以前にキーのマッピングが含まれていた場合、古い値が置き換えられます。

パラメーター:

key - 指定された値が関連付けられるキー

value - 指定されたキーに関連付けられる値

戻り値: key に関連付けられた以前の値、または key のマッピングがなかった場合は null。(null 戻り値は、マップが以前に null をキーに関連付けていたことを示す場合もあります。)

于 2013-08-29T09:59:11.637 に答える
1

の基本的な契約はMap重複キーを許可しないことです。したがって、マップ内のすべてはデフォルトで一意ですkeys

これは、 aがキーを保持するためにMap使用し、要素の重複を許可しないためです。SetSet

のjavadocはSet言う

重複する要素を含まないコレクション。より正式には、セットには、e1.equals(e2) のような要素 e1 と e2 のペアが含まれず、最大でも 1 つの null 要素が含まれます。その名前が示すように、このインターフェイスは数学的集合の抽象化をモデル化します

.

于 2013-08-29T09:55:38.120 に答える
0

マップは常に一意です。同じキーをもう一度入れても。古いキーは新しいキーに置き換えられます。

地図の使い方を学んでください。このリンクは役に立つはずです

于 2013-08-29T09:57:30.843 に答える
0

マップ内のすべてのキーは一意です。

そう

Set keySet = map.keySet();
keySet.size();  //this is count of keys

セットのサイズは count です。

または単にmap.size()キーの数です。

于 2013-08-29T09:57:01.940 に答える
0

このhttp://docs.oracle.com/javase/tutorial/collections/index.htmlから始めることができます 。まずは基本を明確に。

于 2013-08-29T09:58:30.880 に答える