1 つのリストで同じ緯度、経度を持つすべてのリストをフィルタリングし、同じリストに入れ、そのリストをマップに入れます。私のコードは次のとおりです:-
private Collection<List<Applicationdataset>> groupTheList(ArrayList<Applicationdataset> arrayList)
{
Map<Key, List<Applicationdataset>> map = new HashMap<Key, List<Applicationdataset>>();
for(Applicationdataset appSet: arrayList)
{
Key key = new Key(appSet.getLatitude(), appSet.getLongitude());
List<Applicationdataset> list = map.get(key);
if(list == null){
list = new ArrayList<Applicationdataset>();
}
list.add(appSet);
map.put(key, list);
}
return map.values();
}
public class Key {
String _lat;
String _lon;
Key(String lat, String lon) {
_lat = lat;
_lon = lon;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Key key = (Key) o;
if (!_lat.equals(key._lat)) return false;
if (!_lon.equals(key._lon)) return false;
return true;
}
@Override
public int hashCode() {
int result = _lat.hashCode();
result = 31 * result + _lon.hashCode();
return result;
}
}
しかし、Web サービスからの xml に従ってコードをデバッグしているときに、同じ緯度経度を持つ 2 つのリストがあり、デバッグ時に amp の同じリストに保存されますが、デバッグの次のステップに進むと、マップの要素をデバッグしますアイテム リストが 2 つ減少し、サイズが 1 と表示されているのですが、この問題を修正することはできません。