ArrayList
既存のリストに基づいて新しい を構築することについて質問を受けましたList
。要素の値を検査するだけで変更しないため、要素をディープ クローンする必要はありません。
私の古い、動作中のコードは、私には少しハックのように見えるので、過去に問題があったと思います:
Collections.sort(invoiceWordGroups, new WordGroup.WordGroupComparator());
insertAttributes(topAttributeWords, invoiceWordGroups, templateId, templateAttributeManager, invoiceMarginDataVAT);
Collections.reverse(invoiceWordGroups);
insertAttributes(bottomAttributeWords, invoiceWordGroups, templateId, templateAttributeManager, invoiceMarginDataVAT);
もちろん、私の新しいコードもテストしますが、基本的な概念がうまくいかない場合は、それでもエラーが残る可能性があります。それで、これは同じ動作をしますか?
Collections.sort(invoiceWordGroups, new WordGroup.WordGroupComparator());
List<WordGroup> invoiceWordGroupsReverse = new ArrayList<>(invoiceWordGroups);
Collections.reverse(invoiceWordGroupsReverse);
insertAttributes(topAttributeWords, invoiceWordGroups, templateId, templateAttributeManager, invoiceMarginDataVAT);
insertAttributes(bottomAttributeWords, invoiceWordGroupsReverse, templateId, templateAttributeManager, invoiceMarginDataVAT);
問題はinvoiceWordGroups
、タイプのについてList<WordGroup>
です。これを変更する理由は、リストを複数回使用する必要があり、常に逆にすることは明らかに良い選択肢ではないように思われるからです。