我在代码中遇到的一个问题是我有一长串字符串映射到不同的整数。例如," Apple"映射到4," Bat"映射到7,等等。有没有办法创建一个数组列表,使一个字符串用作输入搜索元素而不是传统的数字? IE浏览器。数组[" Apple"]而不是数组[4]
答案 0 :(得分:1)
ArrayList没有这种支持。但是Hashmaps可以解决你的用例。检查一下。
答案 1 :(得分:1)
为此使用关联数据结构。
Map<String, Integer> items = new HashMap<>();
items.put("Apple", 4);
items.put("Bat", 7);
items.get("Apple");
items.get("Bat");
答案 2 :(得分:0)
您可以使用Map
来解决您的使用案例。
Map<String, Integer> fruits = new HashMap<String, Integer>();
现在,您的水果地图将String
作为关键字,Integer
作为值。
设置键值:fruits.put("Apple", 1)
要根据键获取价值:fruits.get("Apple")
答案 3 :(得分:0)
此问题需要两种数据结构:Map
将项目名称与索引相关联,List
存储项目(例如ArrayList
)。例如(未经测试):
// Store the items and a mapping of their indices by name.
List<String> items = new ArrayList<String>();
Map<String, Integer> itemIndices = new HashMap<String, Integer>();
// Add the item to both data structures.
itemIndices.put("Apple", 4);
items.add("Apple", 4);
// Now you can fetch them by name.
items.get(itemIndices.get("Apple")); // => "Apple"
当然,您可以直接使用Map<String,Integer>
,而无需使用List
...