Java 从树映射到arraylist的转换字符串<;LatLng>;这就是arraylist<;字符串>;
我从treemap中获得了价值: 我已将所有坐标以字符串格式添加到hashmap中,该格式是一个rraylist,现在是treemap中的字符串。因此,我希望从字符串idlatlng中检索所有值,该字符串中包含arraylist: 添加到hashmap的代码Java 从树映射到arraylist的转换字符串<;LatLng>;这就是arraylist<;字符串>;,java,android,arraylist,treemap,Java,Android,Arraylist,Treemap,我从treemap中获得了价值: 我已将所有坐标以字符串格式添加到hashmap中,该格式是一个rraylist,现在是treemap中的字符串。因此,我希望从字符串idlatlng中检索所有值,该字符串中包含arraylist: 添加到hashmap的代码 LatLng allLatLng= new LatLng((lat1),(long1)); all.add(allLatLng); map.put("latlng" , all.toString()); 第二个树状图: C
LatLng allLatLng= new LatLng((lat1),(long1));
all.add(allLatLng);
map.put("latlng" , all.toString());
第二个树状图:
Collections.sort(list, new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
String value1 = o1.get("amount");
String value2 = o2.get("amount");
return Integer.parseInt(value1)-Integer.parseInt(value2);
}
});
for (Map<String, String> map1 : list) {
String id = map1.get("id");
String amount = map1.get("amount");
System.out.println("amount= "+amount + " , " +"id = "+id);
String idlatlng = map1.get("latlng");
}
idlatlng
包含的arraylist of。那么如何将上面字符串中的值转换为arraylist。这是上一个问题的后续问题。我非常感谢您的帮助。请提前回答
输出:
字符串idlatlng
-->arraylist
我从idlatlng得到的值是:[lat/lng:(70.0187,-141.0205),lat/lng:(70.4515,-144.8163),lat/lng:(70.4515,-144.8163),lat/lng:(70.4515,-144.8163),lat/lng:(70.4515,-144.8163),lat/lng:(70.4515,-144.8163),lat/lng:(70.4515,-144.8163),lat/lng:(70.4515,-144.8163)]
我想你想要这个:
private ArrayList<LatLng> latlngs = new ArrayList<LatLng>();
for (Map<String, String> map1 : list) {
String id = map1.get("id");
String amount = map1.get("amount");
String idlatlng = map1.get("latlng");
LatLng latLng = new LatLng(id , amount, idlatlng);
latlngs.add(latLng);
private ArrayList latlngs=new ArrayList();
用于(地图1:列表){
字符串id=map1.get(“id”);
字符串amount=map1.get(“amount”);
字符串idlatlng=map1.get(“latlng”);
LatLng LatLng=新LatLng(id、金额、怠速);
latlngs.添加(latLng);
}
用这个代码替换上面的代码
LatLng allLatLng= new LatLng((lat1),(long1));
all.add(allLatLng);
JSONArray jsonA = JSONArray.fromObject(all);
map.put("latlng" , jsonA.toString());
您的迭代如下所示
for (Map<String, String> map1 : list) {
String id = map1.get("id");
String amount = map1.get("amount");
System.out.println("amount= "+amount + " , " +"id = "+id);
JSONArray jsonArray = JSONArray.fromObject( map1.get("lanlat"));
Collection<LatLng> collection = JSONArray.toCollection(jsonArray, LatLng.class);
for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
LatLng latLng = (LatLng) iterator.next();
//Do whatever with your latLng object
}
}
for(地图地图1:列表){
字符串id=map1.get(“id”);
字符串amount=map1.get(“amount”);
System.out.println(“amount=“+amount+”,“+”id=“+id”);
JSONArray JSONArray=JSONArray.fromObject(map1.get(“lanlat”);
Collection Collection=JSONArray.toCollection(JSONArray,LatLng.class);
for(Iterator Iterator=collection.Iterator();Iterator.hasNext();){
LatLng LatLng=(LatLng)迭代器.next();
//用你的车床做任何事
}
}
注:
若要正常工作,LatLng类应具有解除构造函数
如果您需要更多详细信息,请告诉我………正确解释您的问题。这完全不可理解。你有什么问题?您的arraylist包含的实际数据请说明。请提供一些数据,以及您的确切问题。您在项目中使用Json或Gson api……您好,先生。我正在使用Json。您好,Remi,它给出了一个错误。它要求我将字符串idlatlng更改为LatLng idlatlng?我收到了以下错误::::构造函数LatLng(字符串)未定义:在线路上:新车床(idlatlng);是的,您需要将这3个字符串(id、amount、idlatlng)添加到类LatLng中。因此,在LatLng.class中,您的方法需要是:public LatLng(String id,String amount,String idlatlng){this.id=id;this.amount=amount;this.idlatlng=idlatlng;}
LatLng allLatLng= new LatLng((lat1),(long1));
all.add(allLatLng);
JSONArray jsonA = JSONArray.fromObject(all);
map.put("latlng" , jsonA.toString());
for (Map<String, String> map1 : list) {
String id = map1.get("id");
String amount = map1.get("amount");
System.out.println("amount= "+amount + " , " +"id = "+id);
JSONArray jsonArray = JSONArray.fromObject( map1.get("lanlat"));
Collection<LatLng> collection = JSONArray.toCollection(jsonArray, LatLng.class);
for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
LatLng latLng = (LatLng) iterator.next();
//Do whatever with your latLng object
}
}