Java实现随机无重复数字功能
作者:网络转载 发布时间:[ 2012/11/1 10:27:22 ] 推荐标签:
由于HashSet和HashMap的关系太近了,HashSet在底层是用HashMap来实现的,只不过没有Value的集合,只有一个Key的集合,所以也可使用HashSet来实现,如下代码:
import java.util.HashSet;
import java.util.Random;
/**
* 使用HashSet实现
* @Description:
* @File: Test.java
* @Package None
* @Author Hanyonglu
* @Date 2012-10-18 下午06:11:41
* @Version V1.0
*/
public class Test {
public static void main(String[] args) {
Random random = new Random();
Object[] values = new Object[20];
HashSet<Integer> hashSet = new HashSet<Integer>();
// 生成随机数字并存入HashSet
for(int i = 0;i < values.length;i++){
int number = random.nextInt(100) + 1;
hashSet.add(number);
}
values = hashSet.toArray();
// 遍历数组并打印数据
for(int i = 0;i < values.length;i++){
System.out.print(values[i] + " ");
if(( i + 1 ) % 10 == 0){
System.out.println("
");
}
}
}
}
这样实现效率稍微好些。如果给我们限定了数组的长度,只需要变换下for循环,设置成whlie循环可以了。如下所示:
import java.util.HashSet;
import java.util.Random;
/**
* 使用HashSet实现
* @Description:
* @File: Test.java
* @Package None
* @Author Hanyonglu
* @Date 2012-10-18 下午05:11:41
* @Version V1.0
*/
public class Test {
public static void main(String[] args) {
Random random = new Random();
Object[] values = new Object[20];
HashSet<Integer> hashSet = new HashSet<Integer>();
// 生成随机数字并存入HashSet
while(hashSet.size() < values.length){
hashSet.add(random.nextInt(100) + 1);
}
values = hashSet.toArray();
// 遍历数组并打印数据
for(int i = 0;i < values.length;i++){
System.out.print(values[i] + " ");
if(( i + 1 ) % 10 == 0){
System.out.println("
");
}
}
}
}

sales@spasvo.com