Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从树映射到arraylist的转换字符串<;LatLng>;这就是arraylist<;字符串>;_Java_Android_Arraylist_Treemap - Fatal编程技术网

Java 从树映射到arraylist的转换字符串<;LatLng>;这就是arraylist<;字符串>;

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

我从treemap中获得了价值:

我已将所有坐标以字符串格式添加到hashmap中,该格式是一个rraylist,现在是treemap中的字符串。因此,我希望从字符串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");
        }
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            
       }
  }