如何从Map中分离嵌套数组? - Java

时间:2018-03-22 07:50:19

标签: java hashmap

我有一个由String和Object组成的Map;

Map<String, Object> filters

它的结构就像; enter image description here

但是当我尝试使用过滤器时,值 中的数组>变为[ljava.lang.string;@46d8e9e

我想在地图中将对象中的字符串数组分开并制作foreach,但我尝试的所有内容都不起作用。

这是我制作foreach的方法;

       if (!filters.isEmpty()) {
            filters.forEach((k, v) -> {
                columnName = new String(k.toString());
                filter = new String(v.toString());
            });
        } else {
            columnName = new String(DEFAULT_SORT_FIELD);
            filter = new String("");
        }

实际上,我正在使用 Primefaces 中的 selectCheckboxMenu ,而这张奇怪的地图来自那里。当我使用 selectOneMenu 时,已经变为

1 个答案:

答案 0 :(得分:1)

如果我已经正确使用你,你需要转换保存在Object中的String [],该示例将返回 [a,b,c]

  public static void main(String[] args) {
    HashMap<String, Object> map = new HashMap<>();

    map.put("key1", new String[]{"a","b","c"});

    map.forEach((k,v) -> System.out.println(toList(v)));

  }

  public static List<String> toList(Object obj) {
    return Arrays.asList((String[])obj);
  }