Java 如何在HashMap中检索ArrayList值内的元素?

Java 如何在HashMap中检索ArrayList值内的元素?,java,arraylist,hashmap,Java,Arraylist,Hashmap,我是Java新手,我正在努力找出一些琐碎的东西 我有一个HashMap,其中键的类型为String,值的类型为ArrayList,它返回如下内容: dict = {Color=[Blue, Purple]} 我正在努力弄清楚如何从数组中获取dict值中的特定元素。例如,如果我得到dict.value[0],它将返回字符串“Blue” 我试过做: Object values = dict.values().toArray[0]; 我假设因为我把它改成了一个数组,我可以做一些类似values.g

我是Java新手,我正在努力找出一些琐碎的东西

我有一个HashMap,其中键的类型为String,值的类型为ArrayList,它返回如下内容:

dict = {Color=[Blue, Purple]}
我正在努力弄清楚如何从数组中获取dict值中的特定元素。例如,如果我得到dict.value[0],它将返回字符串“Blue”

我试过做:

Object values = dict.values().toArray[0];
我假设因为我把它改成了一个数组,我可以做一些类似values.get0的事情来获取第一个元素,但是这不起作用,因为values是Object类型。关于如何解决这个问题有什么想法吗?

如果您的HashMap是:

{Red=[firstRed, secondRed, thirdRed], Blue=[firstBlue, secondBlue, thirdBlue]}
然后,您可以通过如下列表检索Blue的键值:

将提供:

[Red, Blue]
当您这样做时:

Object values = dict.values().toArray[0];
首先,这是错误的。你想做的是:

Object values = dict.values().toArray();
返回对象[],但不明确。没必要那样做。Java的Map接口和HashMap实现有许多实用方法供您迭代和检索值。

如果您的HashMap类似于:

{Red=[firstRed, secondRed, thirdRed], Blue=[firstBlue, secondBlue, thirdBlue]}
然后,您可以通过如下列表检索Blue的键值:

将提供:

[Red, Blue]
当您这样做时:

Object values = dict.values().toArray[0];
首先,这是错误的。你想做的是:

Object values = dict.values().toArray();
返回对象[],但不明确。没必要那样做。Java的Map接口和HashMap实现有许多实用方法供您迭代和检索值。

首先,使用.get on Map使用键获取ArrayList

List<String> colors = dict.get("Color");
你可以用一行这样做

String color = dict.get("Color").get(0);
您正在尝试使用dict.values.toArray[0],这是错误的语法,这就是问题所在。value将返回集合,您可以通过这种方式获取值列表

List<List<String>> listOfValues = new ArrayList<>(colorsMap.values());
注意:HashMap不存储任何顺序。

首先,使用.get on map使用键获取ArrayList

List<String> colors = dict.get("Color");
你可以用一行这样做

String color = dict.get("Color").get(0);
您正在尝试使用dict.values.toArray[0],这是错误的语法,这就是问题所在。value将返回集合,您可以通过这种方式获取值列表

List<List<String>> listOfValues = new ArrayList<>(colorsMap.values());
注意:HashMap不存储任何顺序。

转换为java.util.List类型,然后您可以通过索引获取值

@SuppressWarnings("unchecked")
public static void main(String[] args) {
    Map<String, List<String>> map = new HashMap<>(2);
    map.put("color", Arrays.asList("blue", "yellow", "green", "white"));
    map.put("size", Arrays.asList("small", "medium", "large"));
    List<String> o = (List<String>) map.values().toArray()[0];
    System.out.println(o.get(0));               //output is 'blue'

    List<String> s = (List<String>) map.values().toArray()[1];
    System.out.println(s.get(1));               //output is 'medium'
}
转换为java.util.List类型,然后可以通过索引获取值

@SuppressWarnings("unchecked")
public static void main(String[] args) {
    Map<String, List<String>> map = new HashMap<>(2);
    map.put("color", Arrays.asList("blue", "yellow", "green", "white"));
    map.put("size", Arrays.asList("small", "medium", "large"));
    List<String> o = (List<String>) map.values().toArray()[0];
    System.out.println(o.get(0));               //output is 'blue'

    List<String> s = (List<String>) map.values().toArray()[1];
    System.out.println(s.get(1));               //output is 'medium'
}

如果您在查看我的答案后仍有问题,请告诉我。我觉得您可能需要更多地了解Java作为一种强类型编程语言。在查看我的答案后,如果您还有问题,请告诉我。我觉得您可能需要更多地了解Java作为一种强类型编程语言。