所以基本上我生成隨機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