private static void method() {
List<HashMap<Integer, String>> repeating = new ArrayList<>();
for(int i = 0; i < 5; i++) {
HashMap<Integer, String> group = new HashMap<>();
group.put(958, "958value-" + i);
group.put(959, "959value-" + i);
group.put(960, "960value-" + i);
repeating.add(group);
}
/*Is there any way to change listObj to again List object*/
String listObj = repeating.toString();}
我将得到要转换为List对象的List对象的字符串。有什么办法可以将该字符串转换为List?
答案 0 :(得分:1)
您可以使用序列化而不是toString。 看看Gson / Jackson。 该库允许将对象转换为字符串并将字符串解析为对象。
例如,Gson允许您将任何对象转换为JSON,然后以这种方式返回到该对象:
List<String> list1 = new ArrayList<>();
// Populate the list
Gson gson = new Gson();
String jsonifiedList = gson.toJson(list1);
然后使用列表的String形式执行所需的操作并检索它:
List<String> list2 = gson.fromJson(jsonifiedList, new TypeToken<List<String>>(){}.getType());
如果您的列表包含更复杂的对象,则可能需要向JsonSerializer
对象中添加一个Gson
,以便它知道如何创建和解析JSON。
答案 1 :(得分:0)
通常情况下,答案是否定的。在某些情况下,类的toString
方法会生成与该类中的相应解析方法或构造函数兼容的字符串。然后,您可以转换回去。通常,将对象转换为字符串格式时会丢失信息。
答案 2 :(得分:0)
是的,尽管我没有从您的问题中得到一切,但应该有可能
创建对象列表的列表
然后使用来迭代地图
for (Map.Entry<String, String> entry : yourmap.entrySet()) {
new List<YourObject> lst;
lst.add(new Object(entry.getkey, entry.getvalue));
但是我建议您不要使用和映射,我不明白为什么您需要它,而如果想要对其进行迭代,则更喜欢使用一个数组列表