我已经string array d={monday,tuesday,wednesday}
在 JAVA 中声明了 a。我想将其"d"
用作另一个二维数组中的索引e[d][t]
,这样当我这样做时d++
,星期一就变成了星期二……这可能吗?如果可以,怎么做?
问问题
80 次
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 回答