对于我的Java应用程序,我创建了一个PL / SQL数据库查询,以特定顺序填充List对象。当我在PL / SQL中运行此查询时,List始终处于正确的顺序,当我检查填写此List的结果时,它始终显示List已正确组织。
但是,当该数据显示在我们的应用程序上,并且应该按照相同的顺序时,该列表上的两个项目有时会以错误的顺序排列。
在我正在测试的示例中,List中有6个项目,并且正在排序的两个项目位于中间。名单上的其他项目都没有丢失。
仔细检查了代码后,我确定丢失此列表顺序的确切时刻是将其添加到Collection对象中。相关流程如下所示
传输到Collection的List对象可能会发生什么情况,导致它失去顺序?
代码示例:
Collection results = null;
results = new TreeSet(new TransactionComparator(rd.getDescendingOrder()));
Collection c = cleanClass.getList(); // Creates a list of ordered items
results.addAll(c);