从treemap到arraylist <latlng>的隐蔽字符串,它是arraylist <string> </string> </latlng>

时间:2013-10-09 10:34:57

标签: java android arraylist treemap

我从树图中获得了价值:

我已经将字符串格式的所有坐标添加到hashmap中,这是一个rraylist现在它在treemap中的字符串。所以我想从String idlatlng中检索包含字符串中的arraylist的所有值:

代码已添加到hashmap

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");
        }

在上面的代码中,我得到了latlng的值。

String idlatlng = map1.get("latlng");

idlatlng包含.Ao的arraylist。如何将上述字符串中的值转换为arraylist。这是前一个问题的后续问题。我非常感谢任何帮助。谢谢你提前。

输出:

String idlatlng ---&gt; arraylist<LatLng>

Unable to sort the the list by ascending order

我从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), lat/lng: (70.4515,-144.8163)]

2 个答案:

答案 0 :(得分:0)

我想你想要这个:

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);

}

答案 1 :(得分:0)

 LatLng allLatLng= new LatLng((lat1),(long1));
 all.add(allLatLng);
 map.put("latlng" , all.toString());

将上述代码替换为此

 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            
       }
  }

注意: 要正常工作,LatLng类应该有defualt构造函数。

如果您需要更多详细信息,请告诉我.........