gpt4 book ai didi

java - 如何在一个列表中过滤相同的纬度,日志值?

转载 作者:行者123 更新时间:2023-12-01 15:19:09 26 4
gpt4 key购买 nike

我有网络服务,可以提供特定区域的属性(property)列表 我的问题是,如果有任何情况,所有属性(property)都必须显示在 map 上 列表中超过两个属性经纬度相同,那么该属性将显示在谷歌地图上的相同气泡上我已经解析结果,但我无法过滤那些在 xml 中具有相同纬度和经度的属性。我正在尝试解析后数组列表返回:-

 private Vector groupTheList(ArrayList<Applicationdataset> arrayList) 
{
Vector<ArrayList<Applicationdataset>> mgroupvector = new Vector<ArrayList<Applicationdataset>>();
ArrayList<Applicationdataset> mfirstList = new ArrayList<Applicationdataset>();
ArrayList<Applicationdataset> mylist=null;
int sizeoflist = arrayList.size();
for(int index =0;index<arrayList.size();index++)
{
//ArrayList<Applicationdataset> mylist= mgroupvector.get(index);
if(mylist==null)
{
mylist = new ArrayList<Applicationdataset>();
}
mfirstList.add(arrayList.get(index));

for(int mindex=1;mindex<arrayList.size();mindex++)
{
if(arrayList.get(index).getLatitude().equalsIgnoreCase(arrayList.get(mindex).getLatitude()) &&
arrayList.get(index).getLongitude().equalsIgnoreCase(arrayList.get(mindex).getLongitude()))
{
mfirstList.add(arrayList.get(mindex));
arrayList.remove(mindex);
}
}
mylist.addAll(mfirstList);
mgroupvector.add(mylist);
mfirstList.clear();
arrayList.remove(index);
index-=1;
}
mgroupvector.add(arrayList);
return mgroupvector;

}

但我无能为力,请帮助我。请任何人帮助我。

最佳答案

类似这样的事情:

.......
private Collection<List<Applicationdataset>> groupTheList(ArrayList<Applicationdataset> arrayList) {
Map<Key, List<Applicationdataset>> map = new HashMap<Key, List<Applicationdataset>>();
for(Applicationdataset appSet: arrayList){
Key<String, String> key = new Key(appSet.getLatitude(), appSet.getLongtitude());
List<Applicationdataset> list = map.get(key);
if(list == null){
list = new ArrayList<Applicationdataset>();
map.put(key, list);
}
list.add(appset);
}
return map.values();
}
........

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

关于java - 如何在一个列表中过滤相同的纬度,日志值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11208683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com