2012-03-16 63 views
-2

可能重复:
Maximum Size of HashSet商店不同的IP地址

我怎样才能在HashSet中添加不同的IP地址

Set<String> ips = new HashSet<String>(); 

String ip = generateIPAddress(); 


    if (!ips.add(ip)) { 

// What should I do here? 

    } 


private String generateIPAddress() { 

     Random r = new Random(); 

     //Now the IP is b1.b2.b3.b4 
     String s = r.nextInt(256) + "." + r.nextInt(256) + "." + r.nextInt(256) + "." + r.nextInt(256); 

     return s; 

    } 
+4

作业??? http://stackoverflow.com/questions/9745214/maximum-size-of-hashset – Bohemian 2012-03-16 22:51:49

+4

你的问题到底是什么? – gobernador 2012-03-16 22:56:11

回答

0

add()回报true如果它是一个新的价值,所以:

while (!ips.add(ip)) { 
    ip = generateIPAddress(); // try again 
} 

这会持续循环,直到您添加新的唯一值。

理论上它可以永久循环,但如果你的随机生成器是合理的,它将最终找到一个新的唯一值。