サーバーのリスナーであるクラスがあるシナリオがあります。通知を受けると、値の文字列を に追加し続けますArrayList
。this から読み取るスレッドがありますArrayList
。
これArrayList
は非常に大きくなる可能性があります。最大サイズに達したかどうかを10分ごとにチェックし、追加された数行を削除するスレッドを生成することを考えています。
これを達成するための最良の方法は何ですか?
別の DS を使用する必要がありますか?
サーバーのリスナーであるクラスがあるシナリオがあります。通知を受けると、値の文字列を に追加し続けますArrayList
。this から読み取るスレッドがありますArrayList
。
これArrayList
は非常に大きくなる可能性があります。最大サイズに達したかどうかを10分ごとにチェックし、追加された数行を削除するスレッドを生成することを考えています。
これを達成するための最良の方法は何ですか?
別の DS を使用する必要がありますか?
の使用を検討してLinkedList
ください。
ArrayList LinkedList
add O(1)* O(1)
remove O(n) O(n)
Iterator.remove O(n) O(1)
insert O(n) O(1)
get O(1) O(n)
*ArrayList.add
配列のサイズを変更する必要がある場合、O(n) の最悪のケースで実行されます。