2016-09-27 10 views
-3

私は、1つのキーと2つのペアの値を格納することができるjavaのデータ構造が必要です。 1の値は文字列で、もう1つの値はintでなければなりません。 また、値を入力して取り出し、int値に従ってペアをソートする必要があります。 助けてください!私はデータ構造を見つける必要があります

+3

その(String、int)ペアを意味のあるクラスにカプセル化すると、マップを使用できます。 – duffymo

+0

[HashMap:One Key、multiple values]の重複している可能性があります(http://stackoverflow.com/questions/8229473/hashmap-one-key-multiple-values) –

+0

おそらく、あなたはMultiMap(Google Guavaライブラリ).Java標準開発キットにMultiMapのようなデータ構造がありません –

答えて

0
public class Option{ 

    private Integer id; 
    private String value; 
    public Integer getId() { 
     return id; 
    } 
    public void setId(Integer id) { 
     this.id = id; 
    } 
    public String getValue() { 
     return value; 
    } 
    public void setValue(String value) { 
     this.value = value; 
    } 
} 

メイククラスと

1

はあなたが必要なものにそれを打破してみましょう使用します。キーは文字列であるMap
2.したがって、
1.あなたがキー - >値を格納何かが必要使用し、ここに問題はない。あなたはそれがint型でソートする必要が

public class MyPair { 
private String s; 
private int i; 

public MyPair(String s, int i) { 
    this.s = s; 
    this.i = i; 
} 
// ommitting getters, hashcode and toString 
} 

4.ので、Comparableインタフェースを使用します:
3.値が文字列/ int型のペアである、あなたは、このようなクラスを作成することができます

public class MyPair implements Comparable<MyPair> { 
private String s; 
private int i; 

public MyPair(String s, int i) { 
    this.s = s; 
    this.i = i; 
} 

public int compareTo(MyPair other) { 
    return this.i - other.i; 
} 
// ommiting getters, hashcode and toString 

} 
1

のいずれかを他の回答に記載されているようにラッパーを使用するか、文字列用の2つのマップとInteger用の1つのマップを使用できます。

+0

確かに最初のものが好ましい。 2つの項目が関連している場合は、2つのデータ構造を維持するのではなく、それらをまとめてカプセル化する方がよいでしょう。 – duffymo

+1

私はもっと同意できませんでしたが、場合によってはまだ選択肢です –

関連する問題