2016-11-02 8 views
3

私のアプリでは、私は私のデータの種類を与える機能があります。どのように配列にこのタイプのデータを扱う - JAVA

年(int型)と、その年に関連した文字列を(年は、より関連していることができます文字列):

2016 - "1A2B3C"

2009 - "8DF56R"

2009 - "8E4I1J"

2013 - 「P6 F2T8" - 『4K6J5U』

私が増加年間、年並べ替えるよりも、各年の文字列の配列を作成します。 - "8DF56R" "8E4I1J" "4K6J5U"

2013 - "P6F2T8"

2016 - "1A2B3C"

年インデックスでなければなりません

2009:このように、 どうすればその出力を取得できますか?

ご質問申し訳ありませんが、ArrayList、ArrayListの配列を試しましたが、おそらく何か不足しています。

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

を、あなたはIntegerキー(日)に関連付けられているList Sを埋めることができます。

+0

マップは機能しているはずです。 –

答えて

6

あなたはこのようMapListのSを使用する必要があります。 TreeMapは、自然順序付けに従ってキーをソートします(デフォルトでは、それが正しいと思います)。彼はデフォルトの場合は、カスタムComparatorを作成することができます

があなたのために

+0

@誰かdownvoted:説明する気に? –

+0

私はあなたのソリューションを実装しようとしている、私はあなたが正しいかどうかを確認することができますデータを追加するためのコードを追加しましたか? – GMX

+0

コードがコンパイルされません。 'Map'の' containsKey'メソッドを使って、その年があるかどうかを調べたいかもしれません。 –

0

満足のいくものではない別の解決策は、あなたの情報(年、文字列など)を含有し、Comparableインタフェースを実装するクラスTを作成することです。メソッドcompareTo(T)は年を比較します。このようにすれば、より多くの情報を扱うことができます。 このタイプのオブジェクトは、SortedSetに挿入することも、Collections.sortまたはJava8 Streamで使用するListに挿入することもできます。

関連する問題