2016-11-19 61 views
-1

我需要一些帮助,试图比较2 arraylist然后排序;如果我甚至在正确的轨道上。因此,这里是我的问题..基于方法的ArrayList排序

arraylist 1包含其中3整数加起来4对象和每个整数必须是至少大于或大于/等于下一个数字。

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

同样,每个对象的整数进行排序从最大到最小。

现在我有一个(2,1,1)并将其发送到一个方法来执行它的算法。对于每个整数位置,我需要将2添加到该整数位置,并从其余位置减去1。我们可以调用这些A事件,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) 
+0

我在想把事件放在一个数组列表中,然后将第一个数组列表与比较数组列表进行比较,但我不确定。 – user3574842

+0

如何获得'B事件:(3,1,0)'和'C事件(3,1,0)'?我明白'事件:(4,0,0)',但在那之后就迷路了。 – davedwards

+0

当您从第一个位置减去1并从第三个位置减去1并将第二个位置加2时,会发生B事件。 C事件发生在从第一个位置和第二个位置减去1并将第二个位置加上2之后。 – user3574842

回答

0

目前你的问题我也不清楚,但我想我可以帮你指明正确的方向。

既然你说:

无(3,1,0)复制

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

假设你是不是自己写的排序算法,你可以使用一个SortedSet,然后实现必要的功能(Comparable接口或Comparator),让你的对象是在你想要的方式排序(前面的链接提供了描述如何链接去做这个)。

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

这里有一些,你可以工作在混乱的部分:

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

这是令人困惑的,因为你提出了两个冲突的要求。每个数字是严格大于下一个还是大于或等于下一个?

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

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

因为有数量来下产生的(4,0,0),我将如何排序的第一个ArrayList的一个事件

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

+0

对不起,问这个问题我应该更加精确。所以我使用了一个构造函数来创建对象。所以从某种意义上说, – user3574842

+0

对不起,在问这个问题时我应该更加精确。所以我使用了一个构造函数来创建对象。所以从某种意义上说,{(2,1,1),(2,2,0),(3,1,0),(4,0,0)}是状态,并且在每个状态中,它们被排序我在构造函数中定义了它。这就是我所说的每个整数必须大于或大于或等于。如果n = 4,我运行了一个for循环,从0 - 4,三次找到加起来为4的整数。如果0,0,4是一种可能性,我确定在for循环中它必须是4 ,0,0。这就是我的意思。 – user3574842