java - 在 Java 中,如何从另一个数组中获取数组名称后将其用作数组?

标签 java arrays arraylist indexing

我的代码:

 String[] rice = {"white", "brown", "none", "all"};

 String[] ingredients = {"rice", "meat", "beans", "salsa", 
 "veggies","cheese","guac", "queso", "sour cream"};

 ArrayList<String> ingredientList1 = new ArrayList<String>();
      for (int i = 0; i < randomNumbers.size(); i++){
          ingredientList1.add(ingredients[i]);
      }

我的问题:

我有一个数组名称数组。当我访问这些名称时,我无法使用它们。为什么不?这似乎是数据类型冲突 - 我该如何解决它?我不知道如何将字符串转换或转换为 String[] 数组。

ingredientList1.get(i).get(0) 将索引 ArrayList“大米”。 如何使用“rice”作为数组名称?大米[0]不起作用。

最佳答案

成分数组中的“大米”只是一个字符串。它没有指向数组的链接:String[] Rice。

还有很多其他方法可以实现您的建议,但您特别想做的是反射(reflection)。为了按名称访问数组,您需要将它们声明为类中的字段,然后使用反射访问类字段。例如。 MyArrays.class.getDeclaredField...

最好阅读有关反射的快速教程:https://www.oracle.com/technical-resources/articles/java/javareflection.html

了解反射当然很有用,但实现这一点的更好方法是以不同的方式构建数据,例如,您可以使用简单的 Map 来存储数据。 map 的键是成分,值是这些成分的类型。

关于java - 在 Java 中,如何从另一个数组中获取数组名称后将其用作数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60011063/

相关文章:

java - 按值查找枚举的正确方法

java - WebView 错误地显示了我的 "no connection"页面

javascript - 使用 es6 映射返回对象中解构的数组

python - 最快的可变数据持有者

java - 从 ArrayList 中删除元素

java - 从 ArrayList 获取字符串返回 null

java - 如何在 JVM 级别捕获 OutOfMemory 错误?

java - Java 和 Python 之间的 XML 序列化库互操作性

javascript - 如何找到与两个数组相交的所有对象?

Java快速数组列表