我在一个List 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));
}
我希望仅获得所有匹配的纬度和经度。
答案 0 :(得分:0)
我还没有尝试过,但是看看它是否有效:
const { value, condition: { special } } = this.state;
如果您可以使用Commons Collections,请务必使用以下方法:
for(LatLng latlng: list1) {
if(list2.contains((LatLng) latlng) {
list3.add(latlng);
}
}
顺便说一句,它返回一个集合!
答案 1 :(得分:0)
for(Paters p : pather) { p.points.retainAll(list2); }
答案 2 :(得分:0)
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);
}
}