私はadd(); remove(); clear(); iterator();
メソッドのHashSetを使用します。これまでのところすべてが魅力的だった。しかし、今私は別の要件を満たす必要があります。HashSetのランダム開始インデックスイテレータ
特定のインデックスから反復処理を開始したいと考えています。たとえば、次の2つのプログラムが同じ出力を持つようにしたいとします。
プログラム1
Iterator it=map.iterator();
for(int i=0;i<100;i++)
{
it.next();
}
while (it.hasNext())
{
doSomethingWith(it.next());
}
プログラム2
Iterator it=map.iterator(100);
while (it.hasNext())
{
doSomethingWith(it.next());
}
私はプログラム1を使用したくない理由は、それが不要なオーバーヘッドを作成することです。私の研究から、私は開始インデックスを持つイテレータを作成する実用的な方法を見つけることができませんでした。
私の質問は、オーバーヘッドを最小限に抑えながら目標を達成するにはどうすればよいでしょうか?
ありがとうございます。
どのような種類のデータ構造を使用しますか? – Xorty
上記の操作をサポートしている限り、データ構造は重要ではありません。しかし、私はそれが単純なArrayListよりも速く(複雑さは少ない)好むでしょう。 –