2013-10-09 3 views
0

Я получаю значение из TreeMap:скрытой строки из TreeMap в ArrayList <LatLng>, который был ArrayList <string>

Я добавил к HashMap все координаты в формате строки который был rraylist теперь его строка в TreeMap .so я хотел бы получить все значения из строки idlatlng, который содержит ArrayList внутри строки .:

код добавлен в HashMap

LatLng allLatLng= new LatLng((lat1),(long1)); 
all.add(allLatLng); 

map.put("latlng" , all.toString()); 

второй TreeMap:

 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 содержит ArrayList из .so Как преобразовать значение из строки выше arraylist.Its следование за вопрос из предыдущего question.i действительно оценить любые help.Yhanks в Advance.

Выход:

String idlatlng --->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

Объясните свой вопрос правильно. Это не совсем понятно. В чем дело ? Какие фактические данные содержат ваш аррайалист, пожалуйста, покажите это. – GrIsHu

+0

Просьба указать некоторые данные и вашу точную проблему. –

+0

Вы используете Json или Gson api в своем проекте ...... – Prabhakaran

ответ

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

}

+0

Здравствуйте, Remi, давая ошибку. Он просит меня изменить строку idlatlng на LatLng idlatlng? – jason

+0

Я отредактировал его! Попробуйте это – Remi

+0

У меня эта ошибка ::::::::: Конструктор LatLng (String) не определен ::::::: на линии ::::: new LatLng (idlatlng); – jason

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.

Если вам нужно подробнее, то дайте мне знать .........

Смежные вопросы