按字符串搜索数组列表

时间:2016-01-03 18:13:26

标签: java

我在代码中遇到的一个问题是我有一长串字符串映射到不同的整数。例如," Apple"映射到4," Bat"映射到7,等等。有没有办法创建一个数组列表,使一个字符串用作输入搜索元素而不是传统的数字? IE浏览器。数组[" Apple"]而不是数组[4]

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 ...