Как сравнить 2 разных списка <LatLng>? - PullRequest
0 голосов
/ 24 марта 2019

У меня есть сигналы широты и долготы трафика в одном списке ArrayList.затем у меня есть все широта и долгота от источника до места назначения во втором ListArrayList.как сравнить один и второй список и взять только совпадающие широту и долготу

нет, я застрял на нем.Я не знаю, как решить эту проблему.

    import com.google.android.gms.maps.model.LatLng;
    import java.util.List;
    public class Paters {
        public List<LatLng> points;
    }


    List<Paters> pather = new ArrayList<Paters>();
    pathss.points = 
    decodePolyLine(overview_polylineJson.getString("points"));
    pather.add(pathss);
    listener.onLocationsgetted(pather);
![pather holding these values][1]
https://imgur.com/70RZjht

     public  void onLocationsgetted(List<Paters> pather) {
         List<LatLng> list2 = new ArrayList<LatLng>();`
//these are the traffic signal latitude and longitude
        `list2.add(new LatLng(13.23907, 80.04534));
         list2.add(new LatLng(13.05674, 80.23662));
         list2.add(new LatLng(13.04353, 80.23627));
         list2.add(new LatLng(13.01215, 80.23654));
         list2.add(new LatLng(13.01715, 80.24235));
         list2.add(new LatLng(13.03366, 80.97431));
     }

Я ожидаю получить только все соответствующие широты и долготы.

Ответы [ 3 ]

0 голосов
/ 25 марта 2019
for(Paters p : pather) { p.points.retainAll(list2); }
0 голосов
/ 25 марта 2019
ArrayList<Paters> al = new ArrayList<>();    
pathss.points =decodePolyLine(overview_polylineJson.getString("points"));
al.add(pathss);

public  void onLocationsgetted(Paters pathss){
List<LatLng> list2 = new ArrayList<LatLng>();
List<LatLng> list3 = new ArrayList<LatLng>();
list2.add(new LatLng(13.23907, 80.04534));
list2.add(new LatLng(13.05674, 80.23662));
list2.add(new LatLng(13.04353, 80.23627));
list2.add(new LatLng(13.01215, 80.23654));
list2.add(new LatLng(13.01715, 80.24235));`

for(LatLng p : pathss.points){
    if(list2.contains(p)){
    list3.add(p);
    }
   }
0 голосов
/ 24 марта 2019

Я не пробовал это, но посмотрите, работает ли оно:

for(LatLng latlng: list1) {
    if(list2.contains((LatLng) latlng) {
        list3.add(latlng);
    }
}

Если вы в порядке, используя Коллекции Общин, непременно используйте это:

CollectionUtils.intersection(list2, list1);

Кстативозвращает коллекцию!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...