我有一个关于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>
。我改变它的原因是因为我现在需要多次使用列表,并且不断地反转它似乎肯定不是一个好的选择。