public boolean add(Object o)
Adds the specified element to this set if it is not already present.就是说当TreeSet里面没有相同的元素才加,你循环100次,不一定有100各不同的值。换成10000应该也有可能结果不是100,但是几率小很多,你还没有碰到。
Adds the specified element to this set if it is not already present.就是说当TreeSet里面没有相同的元素才加,你循环100次,不一定有100各不同的值。换成10000应该也有可能结果不是100,但是几率小很多,你还没有碰到。
另外,random的seed真正的作用是啥?
class RandomNum
{
static int MAX = 10;
static Random rn = new Random();
public static void main(String[] args)
{
TreeSet treeSet = new TreeSet();
for(int i=0;i<100;i++){
treeSet.add(new Integer(rn.nextInt(5000)));
}
if(treeSet.size()<100){
for( int i=0;i<100;i++ ){
treeSet.add(new Integer(rn.nextInt(5000)));
if( treeSet.size()>=100 ){
break;
}
}
}
System.out.println("size is "+treeSet.size());
}
}第二次循环次数可以设的大一点,没关系的,反正会break,应为要判断size第一次的循环还是要的。seed是规定范围的数,随即次序应该是由系统时间来产生的。
class RandomNum
{
static int MAX = 10;
static Random rn = new Random();
public static void main(String[] args)
{
TreeSet treeSet = new TreeSet();
for(int i=0;i<100;i++){
treeSet.add(new Integer(rn.nextInt(5000)));
}
while(treeSet.size()<100){
treeSet.add(new Integer(rn.nextInt(5000)));
}
System.out.println("size is "+treeSet.size());
}
}晕了,不好意思,上面写得不好,这个没问题了。可以确保。
while(treeSet.size()<100){
treeSet.add(new Integer(rn.nextInt(5000)));
}
如果你想得到100个数,而不管是否相同,那就不应该用TreeSet,它实现的是Set接口,不能容纳重复项,改用Vector,它的内容是可相同重复的
for(int i=0;i<100;i++){
vector.add(new Integer(rn.nextInt(5000)));
}
这样求得的size就是100啦。