次のコードpre java 8の結果をより効率的に達成する方法を探しています(Google App Engineでホストされているアプリケーションで、まだJava 8をサポートしていません)スーパーリストにアイテムを集約するより効率的な方法
List<Order> orders = getOrders();
List<LineItem> lineItems = new ArrayList<>();
for (final Order order : orders) {
for (final LineItem lineItem : order.getItems()) {
lineItems.add(lineItem);
}
}
Java 8の機能を使用しなくても、これを実現する手段がより効率的ですか?おそらくあなたはそれが補助配列のサイズに当たったときArrayList
で必要とされるサイズ変更操作を回避することによって、それがより効率的にすることができ、そしてそれは挿入する前に必要なサイズを計算していグアバ
最終的なリストに何百万もの要素があると予想しない限り、私はこの方法にはならないマイクロ最適化のようです(サイズを推測しても)。追加のコード行はそれに値するものではありません。 – Xaerxess
@Xaerxessあなたはどう思いますか?魔法の数字を投げる?質問は、リストの大きさを指定せずに効率化することについて質問しました。 –
'新しいArrayList <>(expectedOrderSize * orders.size())'、(大きさの)順序が正しい場合は、最大2-3サイズのサイズ変更が必要です。 – Xaerxess