一组地图?整数字符串值对映射

时间:2013-02-11 17:25:35

标签: java collections

我需要创建IntegerString配对,例如

(1,one)
(2,two)
(3,three)

稍后我想迭代它并获取特定String值的Integer, 说的像 if int val == 2,返回String。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

Map<Integer,String> map = ...

然后当你想迭代键时,使用

map.keySet()获取用作键的整数列表

答案 1 :(得分:0)

您可以使用Map

为此配对关联建模
Map m = new HashMap<Integer, String>();
m.put(1, "one");
m.put(2, "two");
m.put(3, "three");

// Iterate the keys in the map
for (Entry<Integer, String> entry : m.entrySet()){
    if (entry.getKey().equals(Integer.valueOf(2)){
        System.out.println(entry.getValue());
    }
}

考虑到根据Map的定义,对于给定的整数,您不能有两个不同的字符串。如果您想允许此操作,则应使用Map<Integer, List<String>>代替。

请注意,java不提供Pair类,但您可以自己实现一个:

public class Pair<X,Y> { 
    X value1;
    Y value2;
    public X getValue1() { return value1; }
    public Y getValue2() { return value2; }
    public void setValue1(X x) { value1 = x; }
    public void setValue2(Y y) { value2 = y; }
    // implement equals(), hashCode() as needeed
} 

然后使用List<Pair<Integer,String>>