【发布时间】:2017-12-15 22:00:57
【问题描述】:
我正在使用这样的 java 对象:
public class GeoName {
private String country;
private String city;
private float lat;
private float lon;
}
我收到一份 GeoName 列表,我想尽可能高效地删除列表中同一国家/地区的重复城市。我的意思是,如果我收到以下列表:
Madrid, Spain, ...
London, England, ...
Madrid, Mexico, ...
London, England, ...
Paris, France, ...
Madrid, Spain, ...
我想删除重复的项目(城市+国家),直到列表如下:
Madrid, Spain, ...
London, England, ...
Madrid, Mexico, ...
Paris, France, ...
我正在努力,但我不知道该怎么做!
有什么想法吗?
谢谢!
PS:我不能使用 Set 集合,因为我发现一个城市的名称在一个经纬度不同的国家重复出现(这很奇怪,但它们确实存在)。所以它不会是套装上完全平等的物品
【问题讨论】:
-
嗨,到目前为止,您尝试了什么?
-
使用
Set而不是数组。 -
我昨天回答了一个这样的问题,它被删除了T_T
-
设置不可行,因为我发现同一个国家的一些城市有不同的经纬度(纬度、经度属性)。
-
您可以使用一个哈希集,并为该对象定义 hashCode 以仅使用国家和城市名称吗?
标签: java list collections unique items