所以基本上我生成随机10000个IP地址,我想存储所有那些在HashSet中找到的IP地址,但根据我的计算大约6000个IP地址被发现但在HashSet中只有700个IP地址正在获取存储在哪里?在存储字符串方面,HashSet是否存在任何限制。任何建议将不胜感激。HashSet的最大尺寸
Set<String> ipFine = new HashSet<String>();
long runs = 10000;
while(runs > 0) {
String ipAddress = generateIPAddress();
resp = SomeClass.getLocationByIp(ipAddress);
if(resp.getLocation() != null) {
ipFine.add(ipAddress);
}
runs--;
}
也许9300次resp.getLocation()为null或generateIPAddress()返回相同的String? – DaveFar 2012-03-16 22:27:04
另一种可能性,无论是远程,是由于相对结构化的IP地址形式,您可能会遇到很多散列冲突。即几个不同的IP地址具有相同的hashCode(用于确定该事件是否已经在您的集合中)。虽然这不太可能。 – Jochen 2012-03-16 22:41:35
这绝对是功课! http://stackoverflow.com/questions/9745459/store-distinct-ip-address-in-hashset添加标签 – Bohemian 2012-03-16 22:57:50