Java 使用动态生成的名称访问数组的索引

Java 使用动态生成的名称访问数组的索引,java,javascript,arrays,Java,Javascript,Arrays,我有一些Java代码,其中包含一些数组。假设其中一个是b。我有一个字符串a,其值指向不同时间的那些数组的名称。因此,如果a当前包含b,我想通过a访问b的第三个元素。我本可以用Javascript在窗口[a][2]中完成一些事情。在Java中可以吗?使用集合。看起来您正在查找HashMap 诸如此类: Map<String, List<String>> map = new HashMap<String, List<String>>(); Map M

我有一些Java代码,其中包含一些数组。假设其中一个是
b
。我有一个字符串
a
,其值指向不同时间的那些数组的名称。因此,如果
a
当前包含
b
,我想通过
a
访问
b
的第三个元素。我本可以用Javascript在
窗口[a][2]
中完成一些事情。在Java中可以吗?

使用集合。看起来您正在查找
HashMap

诸如此类:

Map<String, List<String>> map = new HashMap<String, List<String>>();
Map Map=newhashmap();

基于您的上述评论,我将给您一个伪代码答案:

编写如下处理程序:

public class MyHandler implements YourHandlerInterface {

    private String[] array;

    public MyHandler(String[] array) {
        this.array = array;
    }
    // your methods that have to access the array.
}
然后,当你能以某种方式使用它们时,比如:

fileMenu.addHandler(new MyHandler(fileMenuArray));
editMenu.addHandler(new MyHandler(editMenuArray));

因此,您不必使用动态生成的变量名,而且只需实现一次。

使用动态变量名通常是非常不合适的。特别是在Java这样的编译语言中,我实际上使用的是GWT。我有一些自定义的下拉菜单,每个菜单都有相同的功能,比如
下拉菜单
,“click`,等等。如果我做不到这一点,我必须为每个菜单编写一个单独的处理程序,当所有处理程序都完全相同时,保存它们正在处理的元素的名称。@Cupidvogel:为什么不编写一次处理程序,使用构造函数将数组作为参数保存在实例变量中并多次实例化?因此您建议键将是数组名,而值将是它们指向的数组?@Cupidvogel。但是,您也可以使用一些集合来代替数组。最后,您的映射将看起来像
HashMap
,其中T是some类型。是的,对。我真是太傻了,因为我已经知道Javascript在内部使用哈希来实现这一点<代码>地图,为什么不使用
多地图
(例如番石榴)