0

我已经string array d={monday,tuesday,wednesday}在 J​​AVA 中声明了 a。我想将其"d"用作另一个二维数组中的索引e[d][t],这样当我这样做时d++,星期一就变成了星期二……这可能吗?如果可以,怎么做?

4

5 回答 5

3

看来您正在寻找

List<String> indexes = new ArrayList<String>();
Map<String, String> map=  new HashMap<String, String>();
//iterate through each keys
for(String index: indexes){
  String value  = map.get(index);
}
于 2012-06-20T17:47:22.683 回答
0

好吧,你可以使用枚举

public enum FOO
{
monday(0),tuesday(1),...;
private int index;
private FOO(int index){ this.index = index; }
public int getIndex(){ return index; }
}

这样,你就可以做到

FOO d = FOO.monday;
some_array[d.getIndex()][some_index];

你还可以实现某种函数 getNext(),让你第二天进入你的枚举。

于 2012-06-20T18:28:28.397 回答
0

此枚举映射是用有意义的数字顺序表示您的字符串值的最佳方式。但是,我仍然会使用哈希映射实现。它看起来像

HashMap<Weekday, ArrayList> = ...

然后你仍然可以轻松地循环一周中的所有日子来获得你的价值观。

不过要小心。您并没有具体说明这些天正在访问什么样的值。大概是更多的字符串。你试图代表或完成什么?

于 2012-06-20T20:16:29.827 回答
0

如果它是 C++,您可以重写++运算符来增加数组中的元素,但在 Java 中是不可能的(根据我的第一个视图)。

仍在搜索,保持线程打开。

于 2012-06-20T17:58:14.100 回答
0

好吧,您应该更好地使用哈希图来使设计更清晰。可能的解决方案如下。

List<Integer> indices = new ArrayList<Integer>();
Map<Integer, String> map=  new HashMap<Integer, String>();

Integer i= 0;

while(some condition){

   String str= map.get(i++);
}
于 2012-06-20T18:06:00.710 回答