gpt4 book ai didi

Java - 数组名称等于字符串变量的值

转载 作者:行者123 更新时间:2023-11-30 07:41:06 25 4
gpt4 key购买 nike

我有 10 个数组列表和一个字符串变量。我有一个函数/方法,允许用户选择要添加到的数组列表之一。目前,该函数将“选择”的字符串值更改为正确的数组列表名称的值。

启动另一个函数,将元素添加到数组列表中。但是,我正在努力想出一个解决方案,如何根据用户选择的内容更改要添加到的数组列表。

这段代码不起作用,但说它是:

chosen.add(whatUserEntered);

通常,您可以输入 arrayList 名称并添加 .add(whateverTheUserIsEntering) ,它会正常工作。

那么如何让 arrayList 的名称等于 String 变量值的名称呢?

最佳答案

这是一个使用 Map 将字符串名称绑定(bind)到列表的示例。当您需要在运行时(而不是编译时,如示例 choosen.add(userEntered) 所示)将事物组合在一起时,通常需要使用 Map。

这适用于从文件读取的字符串(例如将 XML 名称绑定(bind)到对象)或解释器之类的东西,您必须按名称跟踪用户变量。

public class SymbolTableExample
{
public static void main(String[] args) {
// Some array lists
ArrayList<String> cats = new ArrayList<>();
ArrayList<String> dogs = new ArrayList<>();
ArrayList<String> beetles = new ArrayList<>();
ArrayList<String> cows = new ArrayList<>();

// Bind names to them
Map<String,List<String>> binding = new HashMap<>();
binding.put( "cats", cats );
binding.put( "dogs", dogs );
binding.put( "beetles", beetles );
binding.put( "cows", cows );

// Pretend the user enters some input here
String userChoice = "cats";
String userEntered = "flufy";
binding.get( userChoice ).add( userEntered );

}
}

关于Java - 数组名称等于字符串变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34690168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com