Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中重新排列resultset数据行?_Java_Javabeans_Resultset - Fatal编程技术网

如何在java中重新排列resultset数据行?

如何在java中重新排列resultset数据行?,java,javabeans,resultset,Java,Javabeans,Resultset,其中afrealtimeIssuation是ActionForm 使用上面的代码片段,我得到如下输出 List userProcessedCountCol = new ArrayList(); while (iResultSet1.next()) { afRealTimeIssuance afRealTimeIssuance = new afRealTimeIssuance();

其中afrealtimeIssuation是
ActionForm

使用上面的代码片段,我得到如下输出

        List userProcessedCountCol = new ArrayList();
                  while (iResultSet1.next()) {
                        afRealTimeIssuance afRealTimeIssuance = new afRealTimeIssuance();
                        Integer i = 0;

                        afRealTimeIssuance.setSub_channel(iResultSet1.getString(++i));
                        afRealTimeIssuance.setAgent_names(iResultSet1.getString(++i));
                        afRealTimeIssuance.setFtd(iResultSet1.getDouble(++i));
                        afRealTimeIssuance.setMtd(iResultSet1.getDouble(++i));
                        afRealTimeIssuance.setQtd(iResultSet1.getDouble(++i));

                        userProcessedCountCol.add(afRealTimeIssuance);
}
但是我想把输出重新安排为

1             A             100
2             B             200
3             C             300
4             D             400

简而言之,我想根据需要重新排列行。如何根据一个特定值排列resultset数据。请在SQL查询中使用
ORDER BY
子句或
Collections.sort()
使用
比较器查看
列表
afrealtimeinsuance
而不是
afrealtimeinsuance

无法手动重新排列结果集(仅使用sql)。可以重新安排的是保存对象的数据结构

您可以使用行对象的ArrayList并将每一行插入到所需的位置

在您的示例中,在while循环中:

2            B              200
4            D              400
3            C              300
1            A              100

您可以在以下两个级别执行操作:

  • 数据库级
  • Java级别
在数据库级别,操作返回结果顺序的唯一方法是在sql查询中使用“order BY ASC/DESC”。请注意,您不能依靠任何其他方式从数据库中获取有序结果

在java级别,您可以像这样存储对象: -使用可排序的集合。使您的操作形式具有可比性或实现一个比较器 允许根据需要对元素进行排序。 然后,您可以使用根据自己的条件获取有序集合

你也可以考虑使用代替列表 这个数据结构将允许您只添加数据,并且给定您预先定义的比较器,它将始终被排序。但是加法的复杂性是对数的,所以由您决定


希望这有帮助

有两种方法可以做到这一点。您可以修改查询以使用ORDERBY子句来排列结果。其次,您可以实现Comparator接口并定义您的Comparator类,并使用Collection.sort(列表,Comparator c)对数据进行排序。

我不希望数据按任何顺序排列,即升序或降序。我希望按照我的意愿排列。以下方法定义行对象正确吗?ArrayList行=新的ArrayList();是的,非常好,但我认为您真正需要的是ArrayList rows=new ArrayList();所以是一个合作网站(见),没有必要在一小时后重复与我完全相同的答案。。。这只会增加噪音。一旦你的声誉达到50,你可以对现有的答案进行评论,以便对其进行改进。
userProcessedCountCol.add(index, element);