私はクラスを作成して、arraylistとhashsetの間の挿入パフォーマンスをテストします。予想どおり、ハッシュセットの挿入パフォーマンスはarraylistよりもはるかに優れています(おそらく本は私をだましました)が、テスト結果は私をとても混乱させます
HashSet<String> hashSet = new HashSet<String>();
long start = System.currentTimeMillis();
for (int i = 0; i < 900000; i++) {
hashSet.add(String.valueOf(i));
}
System.out.println("Insert HashSet Time: " + (System.currentTimeMillis() - start));
ArrayList<String> arrayList = new ArrayList<String>();
start = System.currentTimeMillis();
for (int i = 0; i < 900000; i++) {
arrayList.add(String.valueOf(i));
}
System.out.println("Insert ArrayList Time: " + (System.currentTimeMillis() - start));
result:
Insert HashSet Time: 978
Insert ArrayList Time: 287
私はこのメインメトッドを何度も実行しましたが、結果はこれの間で違いはありません。配列リストの挿入時間は、ハッシュセットの挿入時間よりもはるかに短く、誰もがこの奇妙な結果を説明できます。