状況は、最大5000個の要素を持つセットを反復処理する必要があるということです。現在、私はイテレータで通常のforループを使用しています。JavaのSetを反復処理する最良の方法
for (Iterator iterator = allValues.iterator(); iterator.hasNext();) {
ListMetadataElem element = (ListMetadataElem) iterator.next();
NameValueObject value = new NameValueObject();
value.setId(element.getListMetadataElemSeqId().toString());
value.setValue(element.getListMetadataElemNm());
abstractVO.getAllListMetadataElems().add(value);
}
問題は、6-7秒のように反復するには時間がかかり過ぎるため、同じループを複数回呼び出す必要があります。ここ
** Java 8パラレルストリームへのチャンスを与える** –
時間を費やしているのは確かですか? 5000要素は無駄になりません。 –
私はJavaをあまり使いませんが、Pythonでは、単純な '5000'要素のセットに対する反復は非常に速く、わずか6〜7秒です。私はそれがJavaの中では速くて、おそらくもっと高速かもしれないと仮定することができます。私はあなたのループ*内で何が起こっているのだろうと思うので、 'abstractVO.getAllListMetadataElems()'はどういうことでしょうか? –