对具有依赖于它的另一个数组的数组进行排序

时间:2016-04-05 08:39:55

标签: java arrays sorting

我有一个名为startDates的日期数组。我还有一个名为endDates的日期数组。我还有一个名为dateDifferences的长数组。现在,我在代码中的某处打印,开始日期以及旁边的差异(使用startDateendDate计算)。然后我为所有Date对象重复此操作。但是,我需要按顺序打印startDates。我怎样才能实现这一点,以便区别于各自的startDate

ArrayList <Date> startDates = new ArrayList<Date>();
ArrayList <Date> endDates = new ArrayList<Date>();
ArrayList <Long> dateDifferences = new ArrayList<Long>();

在这些数组中,我在各自的arraylists中添加了对startDate和endDate以及dateDifference。

2 个答案:

答案 0 :(得分:0)

你有没有考虑过将三个数组作为一个带有3行的2d数组:

SELECT MONTH(datetime_end) as B, SUM(DATEDIFF(DAY, datetime_start, datetime_end)) FROM [simrke].[trx_medical_ruang] MR JOIN [simrke].[trx_ruang] R ON MR.ruang_cd = R.ruang_cd WHERE R.ruang_nm like 'BAKUNG%' GROUP BY MONTH(datetime_end)

并在此答案中对其进行排序?

int[][] multi = new int[3][10]

归功于Bert F. Sort a two dimensional array based on one column

答案 1 :(得分:0)

如果您添加更多上下文和/或您想要的示例,这将有所帮助。但是,让我试着为你做这件事。根据我的理解,你想要的一个例子是:

start date [1 jan 2016, 4 jan 2016, ...]
end date   [2 jan 2016, 7 jan 2016, ...]
dateDiff   [1, 3, ...]

然后,您要打印类似的内容:

1 jan 2016 : 1 
4 jan 2016 : 3
...

您有几种选择: 1.您不一定需要dateDiff数组。只需在打印开始日期时计算开始日期和结束日期之间的日期差异。然后在那里打印差异! 2.如果您想出于任何原因预先计算它,请考虑为作业使用更好的数据结构。如果您没有重复的开始日期,地图将起作用,但这可能是一个不好的假设。如果是这样,那么一组元组可能运行得很好,通常对这类工作非常有效。

如果这对您不起作用,请告诉我们原因或分享更多背景信息。您会经常找到更有用的解决方案!