2016-11-19 57 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