5

セットをマップに配置する最も簡単な方法は?

public class mySet<T> 
{
    private Map<T, Integer> map;

    public mySet(Set<T> set) 
    {
        Object[] array = set.toArray();

        for(int i =0; i< array.length; i++)
        {
            T v = (T)array[i];
            map.put(v, 1);
        }
    }
}

今、セットを配列に変換し、配列をループして、それらを 1 つずつ入れています。これを行うより良い方法はありますか?

4

2 に答える 2

9

1 つのオプションは次のとおりです。

for (T value : set) {
  map.put(value, 1);
}
于 2012-10-31T08:35:57.797 に答える
2

最も簡単な方法は、それを新しい Map にまったく配置せず、その代わりに、設定されたインスタンスに要求を動的に委譲する Map インターフェースの独自の動的実装を作成することです。もちろん、これはマップのライブビューが必要な場合、またはセットが不変である場合にのみ機能します。また、Map で必要な API によっては、これが大変な作業になる可能性がありますが、ここでは AbstractMap が大いに役立ちます。

于 2012-10-31T08:40:43.597 に答える