我有一张地图:message
内容是:
Map<String, Object> data
我想在长列表中存储{"id_list":["2147041","2155271","2155281"],
"remoteHost":"127.0.0.1",
"userId":"user",
"agencyId":1}
的所有值
它将是:
Key: id_list
有没有办法做到这一点?
我有:
list:[2147041,2155271,2155281]
答案 0 :(得分:3)
new ArrayList<Long>(Arrays.asList(data.get("id_list")));
假设这是hashMap中的数组。否则你必须将它作为(Iterable<String>)data.get("id_list");
投射并逐个添加每个字符串。
答案 1 :(得分:3)
看起来id_list
集合中的值是String
个对象,因此您应该能够通过执行转换的循环执行此操作:
Iterable<String> idStrings = (Iterable<String>)data.get("id_list");
List<Long> list = new ArrayList<Long>();
for (String id : idStrings) {
list.add(Long.valueOf(id));
}
答案 2 :(得分:0)
您可以使用Arrays.asList
从该数组中实例化
List<Long> list = Arrays.asList(data.get("id_list"));
或者如果你想要一个新的ArrayList而不是一个通用的List
List<Long> list = new ArrayList<Long>(Arrays.asList(data.get("id_list")));