基于Method的ArrayList排序

时间:2016-11-19 01:01:44

标签: java sorting arraylist collections

我需要一些帮助来尝试比较2 arraylist然后排序;如果我甚至走在正确的轨道上。所以这是我的问题..

Say arraylist 1包含3整数加起来4的对象,每个整数必须至少大于或等于下一个数字。

例如,arraylist 1包含{(2,1,1), (2,2,0), (3,1,0), (4,0,0)}.

此外,每个对象整数都从最大到最小排序。

现在我接受(2,1,1)并将其发送到一个方法来对其执行算法。对于每个整数位置,我需要将2添加到该整数位置,并从其余位置减去1。我们可以将这些事件,B事件或C事件称为。

例如,(2,1,1)这些事件将是

A Event: (4,0,0)

B Event: (3,1,0)

C Event: (3,1,0)

现在,我的问题是因为一个事件产生了(4,0,0)我将如何对第一个arraylist进行排序,以使该数字接下来然后有(3,1,0)但没有(3,1,0)重复。因此在对数组进行排序后,它应该是

(2,1,1) ( 4,0,0) (3,1,0) (2,2,0) 

1 个答案:

答案 0 :(得分:0)

目前我的问题并不清楚,但我认为我可以帮助您找到正确的方向。

既然你说:

  

没有(3,1,0)重复

我建议为了确保Collection中对象的唯一性,您应该考虑使用实现Set接口的类(有关详细信息,请参阅Javadoc for Set)。

假设您没有自己编写排序算法,可以使用SortedSet然后实现必要的功能(Comparable接口或Comparator),以便对象按顺序排序你想要的(早期的链接提供了描述如何做到这一点的链接)。

希望这会有所帮助,如果您可以尝试更清楚地提出问题,我很乐意提供一些额外的指示。

以下是您可以处理的一些令人困惑的部分:

  

每个整数必须至少大于或等于下一个数字。

这令人困惑,因为你提出了两个相互矛盾的要求。每个数字是否严格大于下一个数字或是否大于或等于下一个?

  

此外,每个对象整数都从最大到最小排序。

我不确定你的意思是因为你已经说过对象中包含的整数是按照特定的顺序。

  

因为一个事件产生了(4,0,0)我将如何对第一个arraylist进行排序以使该数字成为下一个

你并没有真正告诉我们排序应该如何运作。你能否更多地描述算法 - 它如何决定物品的顺序,如何将一个物品与另一物品进行比较?