有没有一种方法可以将字符串数组变量用作JAVA中另一个2D数组的索引?

时间:2012-06-20 17:44:20

标签: java

我在JAVA中声明了string array d={monday,tuesday,wednesday}。我想在另一个2D数组"d"中使用e[d][t]作为索引,这样当我d++时,星期一变成星期二.....这可能吗?如果是的话,怎么样?

5 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

嗯,你应该更好地使用hashmaps来使设计更清晰。可能的解决方案如下:

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++);
}

答案 3 :(得分: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(),它可以让您在枚举中获得第二天。

答案 4 :(得分:0)

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

HashMap<Weekday, ArrayList> = ...

然后,您仍然可以轻松遍历一周中的所有日子以获得您的价值观。

虽然谨慎。您并未具体说明这些天来访问的价值观。大概更多的字符串。你试图表达或完成什么?

相关问题