2016-11-02 61 views
3

在我的應用程序我有一個函數,它給我的數據類型:如何處理這種類型的數據到數組 - JAVA

一年(int)和相關聯當年的String(年可以有關聯的更多字符串):

2016 - 「1A2B3C」

2009年 - 「8DF56R」

2009年 - 「8E4I1J」

2013 - 「P6 F2T8"

2009 - 「4K6J5U」

我想創建一個String數組每年,超過年連年增長排序。就像這樣:

2009 - 「8DF56R」 「8E4I1J」 「4K6J5U」

2013 - 「P6F2T8」

2016 - 「1A2B3C」

年應是指數, 我如何檢索輸出?

對不起noob問題,但我嘗試數組,ArrayList和Map的數組,但我可能錯過了一些東西。

+0

地圖應該已經工作。 –

回答

6

,您應該使用ListMap一個人就像這樣:

Map<Integer, List<String>> = new TreeMap<>(); 

,你可以填寫了一個Integer鍵(日期)相關的List秒。 TreeMap根據它們的自然順序對你的密鑰進行排序(如果我記得它是正確的,則默認爲升序)。

您還可以創建自定義Comparator如果他默認爲您

+0

@whomever downvoted:謹慎解釋? –

+0

我試圖實施你的解決方案,我添加了一段代碼添加數據,你可以檢查是否是正確的? – GMX

+0

你的代碼不能編譯。你可能想在'Map'上使用'containsKey'方法來檢查你是否有給定的年份。 –

0

另一種解決方案是創建一個包含信息(年,字符串等),實現可比接口的類T是不能令人滿意的。方法compareTo(T)將比較年份。通過這種方式,你可以處理更多的信息。 此類型的對象可以插入到SortedSet中,例如,或者與Collections.sort或Java8 Stream一起使用的List。

相關問題