解决方案 »
- 共享一下模仿QQ好友列表,点击表头展开对应Tab的源码
- java方法传参问题
- 手机客户端 能否 访问服务器端的servlet 程序?
- 我的ftp代码一上传就报告NullPointer错误,到底是什么原因?50分
- (公司面试题探讨) 最简单的实现看你对设计模式的理解. 实现一个窗体由两个面板组成, 当左面板上的按钮被按下, 右面板标签上出现一字符
- 请问Java在与其他语言通信时,如何将网络序与字节序转换(高分请教)
- 我想实现这样的功能,请大家指点一下,小弟!!谢谢!!
- 阿里巴巴的面试题之一,谁能解释解释
- 在windows下做完的java小程序,怎么才能用于linux,用的是jbuilder6
- 问个关于多线程的小问题
- 请问sun官网上的Sun ONE Studio 5下载地址在哪里啊?
- JDK6新特性 ExecutorCompletionSe
int a[]={1,2,3,4,,5,6,7,8};
boolean b[]=new boolean[a.length];
再用math.radom随取机
不过自己也很晕 求高手详解
List list = new ArrayList();
java.util.Random random = new java.util.Random(); while (list.size() < 177) {
Integer ii = new Integer(random.nextInt(177));
if (!list.contains(ii)) {
list.add(ii);
}
System.out.println( "----- " + list.toString());
}
我倒觉得,使用Math.Random()。随机出一个数组对应的数来后。以后直接根据随机数去取值。
package net.csdn.test;import java.util.ArrayList;
import java.util.List;
import java.util.Random;public class Test {
public static void main(String[] args) {
int[] arrays = {1,3,2,34543,2131,23,234,25,453,6234,24,543,531,3134,347,67,452};
Random ran = new Random();
int count = ran.nextInt(arrays.length),i = 0;
List<Integer> list = new ArrayList<Integer>();
while(i < count) {
Integer tmp = arrays[ran.nextInt(arrays.length)];
if(list.contains(tmp))
continue;
else
list.add(tmp);
i++;
}
System.out.println(list);
}
}还有Set是去重复元素的,如果有的不要求集合内的元素一定要与循环次数相等的话,可以使用Set。
{
int[] num = {1,2,3,4,5,6,7,8,9,10};
int length = num.length;
for (int i = 0; i < count; i++)
{
int index = (int)(Math.random() * length);//产生下标
System.out.print(" " + num[index]);
num[index] = num[length - 1];
length--;
}
}
来晚了,代码不写了
提醒:nextInt(int n)
返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
不包括右值; Math.random()有0没1;
int为截位取整。有的已经把最后的元素丢了
import java.util.Random;
public class Test {
private static int[] arr;
private static int index;
private static Random ran;
public Test(int[] arr){
this.arr = arr;
this.index = arr.length - 1;
this.ran = new Random();
}
public static void main(String[] args) {
int[] nums = {1,4,6,13,83,91,8,31,7,14,78,20,65};
Test test = new Test(nums);
for(int i = 0; i < nums.length; i++){
System.out.println(test.getRaNum());
}
}
public int getRaNum(){
if(index == 0)
return arr[0];
int temp = ran.nextInt(index);
arr[temp] ^= arr[index];
arr[index] ^= arr[temp];
arr[temp] ^= arr[index];
index--;
return arr[index+1];
}
}
public class Test {
private static int[] arr;
private static int index;
private static Random ran;
public Test(int[] arr){
this.arr = arr;
this.index = arr.length - 1;
this.ran = new Random();
}
public static void main(String[] args) {
int[] nums = {1,4,6,13,83,91,8,31,7,14,78,20,65};
Test test = new Test(nums);
for(int i = 0; i < 2 * nums.length; i++){
System.out.println(test.getRaNum());
}
}
public int getRaNum(){
if(index == 0){ //如果数组的数都随机取了一次了,就重新对整个数组随机取数;
index = arr.length - 1;
return arr[0];
}
int temp = ran.nextInt(index);
arr[temp] ^= arr[index];
arr[index] ^= arr[temp];
arr[temp] ^= arr[index];
index--;
return arr[index+1];
}
}
public class Random implements Runnable {
String name[]={"a","b","c","d","e","f","g"};
int numbers[]= new int[3];
int j=0;
int number;
public void run()
{
boolean fleg;
// TODO Auto-generated method stub
do
{
fleg=false;
number = (int)(Math.random()*7);
for(int i =0;i<numbers.length;i++)
{
if(number==numbers[i])
{
fleg=true;
break;
}
}
}while(fleg);
numbers[j]=number;
System.out.println("第"+(j+1)+"的数为:"+name[numbers[j]]);
j++;
}
}
//测试
public class RandomTest {
public static void main(String s[])
{
Random ran = new Random();
Runnable able = new Random();
new Thread (able).start();
new Thread (able).start();
new Thread (able).start();
}}