[英]Java Testing if a variable equals a value in the array if not print -1
[英]Java - Name of Array Equals Value of String Variable
我有10个数组列表和一个String变量。 我有一个函数/方法,允许用户选择要添加到的数组列表之一。 当前,该函数将字符串“选择”的值更改为适当的数组列表名称的值。
启动另一个功能,其中将元素添加到arraylist中。 但是,我正在努力提出一个解决方案,以根据用户选择的内容来更改要添加到哪个arraylist的方法。
该代码不起作用,但说是:
chosen.add(whatUserEntered);
通常,您可以输入arrayList名称并添加.add(whateverTheUserIsEntering),它将正常工作。
那么,如何让arrayList的名称等于String变量的值?
这是一个使用Map
将字符串名称绑定到列表的示例。 当您需要在运行时将它们放在一起时(与编译时相反,如示例中的choosen.add(userEntered)
),通常需要使用Map。
这适用于从文件读取的字符串(例如将XML名称绑定到对象)或诸如解释器之类的东西,在这些东西中您必须按名称跟踪用户变量。
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 );
}
}
使用Map
。
public interface Map<K,V>
您可以使用方法
V put(K key, V value)
为键分配值,因此您可以为不同的键设置ArrayList
或添加新键。
由于使用的是ArrayList
,因此可以使Map如下所示:
Map<String, ArrayList<String>)> myArrays
然后,要将值添加到具有给定键的数组中,请使用
myArrays.get(userChosenArrayKey).add(whatUserEntered)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.