0
Multiset<String> set = new Multiset<String>();
for(int i = 0; i < 10000; i++)
{
set.add("Hello");
}
これは、プログラムがHelloにリストを10,000回追加する原因になります。
次にCounterMultisetがあります。 。それはT
がStringのペアオブジェクト((T, Integer)
にかかる別のクラスを、保存し、「こんにちは」とInteger
は、追加されるようにしようとしている回数がある私はそうのようにそれを書かれている:
public void add(Multiset<T> item)
{
if(!contains(item))
{
Pair newpair = new Pair(item, 0);
pairs.add(newpair);
}
for(int i = 0; i < pairs.size(); i++)
{
if(pairs.get(i).getFirst() == item)
{
pairs.get(i).changeSecond();
}
}
}
changeSecond()は、Helloという単語が再び追加されたことを示すために、オブジェクト内の2番目の数値を1つ増やします。
私の質問は、プログラムのスペースと時間を節約する適切な方法ですか?カウンタを使用する方が速く、 "Hello"を10,000回追加するほうが速いのはいつですか?
'set.add(" Hello "、10000)' – Kelvin
なぜそれが速いのでしょうか?期待している操作は何ですか? このようなマルチセットを使用している場合、メモリのCPUサイクルを交換しています。通常、メモリに保存するのは簡単です。セットを追加した後に、言葉の数を繰り返すことを期待している場合を除き、高速です。 –
@ケルヴィン同じアイデアだが、どちらの方がどちらの方が良いか不思議である。 – SwaggyC