发布网友 发布时间:2022-04-23 03:33
共5个回答
热心网友 时间:2023-09-10 20:43
把源数据放到数组中,然后循环随机交换这个数组元素的位置就可以了
int[]aa = {1,2,5,6,8,9,7};
Random r = new Random();
for(int i=0;i<100;i++)
{
int index = r.nextInt(aa.length);
int temp = aa[0];
aa[0] = aa[index];
aa[index] = temp;
}
热心网友 时间:2023-09-10 20:44
import java.util.Random;
public class MainClass {
/**
* Author:kejisoft
* @param args
*/
public static void main(String[] args) {
boolean[] numberList={true,true,true,true,true,true,true,true,true,true};
// 0 1 2 3 4 5 6 7 8 9
StringBuilder rndNumber=new StringBuilder();//存放随机数生成
int numberLength=6;//需要生成多长的数字?最多9位数
int i=numberLength;//长度计数器
long result;//int result;
Random rnd=new Random();
while(i>0){
int rndOffset=rnd.nextInt(10);
if(rndOffset==0 && i==numberLength) continue;//解决新数列中第一位可能是0的bug
if(numberList[rndOffset]){
rndNumber.append(rndOffset);//添加到新数列
numberList[rndOffset]=false;//从源数列中移除已使用的数字
i--;//距离我们需要的长度又接近了1
}
}
result=Long.valueOf(rndNumber.toString());//Integer.valueOf(rndNumber.toString());
System.out.println(result);//输出
}
}
写的烂了点,还可以看看。其实也是在集合中演变的,原先我想用ArrayList,但后来考虑到更简单的直接用布尔数组了。
热心网友 时间:2023-09-10 20:44
package com.tset;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class arraydemo {
public static void main(String[] args) {
String format = "yyyyMMddHHmmss";
System.out.println(DateToStr(new Date(), format));
}
//时间转换到字符串
public static String DateToStr(Date date,String formatStr) {
SimpleDateFormat format = new SimpleDateFormat(formatStr);
String str = format.format(date);
return str;
}
}
是这条数据不重复还是数据里边不存在重复的数据啊?
package com.tset;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
public class arraydemo {
public static void main(String[] args) {
String format = "yyyyMMddHHmmss";
//两种产生随机数都可以
//String str = DateToStr(new Date(), format);
Random ram = new Random();
String str = Integer.toString(ram.nextInt());
char[] ch = str.toCharArray();
List list = new ArrayList();
for (int i = 0; i < ch.length; i++) {
list.add(ch[i]);
}
for (int i = 0; i < list.size(); i++) {
for (int j= 0; j < list.size(); j++) {
if(list.get(i).equals(list.get(j))){
list.remove(i);
}
}
}
String strs = "";
for (int i = 0; i < list.size(); i++) {
strs +=list.get(i);
}
System.out.println(strs);
}
//时间转换到字符串
public static String DateToStr(Date date,String formatStr) {
SimpleDateFormat format = new SimpleDateFormat(formatStr);
String str = format.format(date);
return str;
}
} 这个是一条数据中产生不会重复数字
热心网友 时间:2023-09-10 20:45
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.print("输入取值数:");
int c = sc.nextInt();
List<Integer> list = new ArrayList<Integer>();
System.out.println();
System.out.print("输入取值范围:");
Random random = new Random();
int num = sc.nextInt();
int i = 0,r;
boolean flag = true;
while(i<c){
r = random.nextInt(num+1);
for(int j=0;j<list.size();j++){
if(r==list.get(j)){
flag = false;
continue;
}
}
if(flag){
list.add(r);
i++;
}
flag = true;
}
Collections.shuffle(list);
System.out.println("结果为:"+list.toString());
}
个人感觉数组没集合好用,何况乱序Collections自带,方便很多
热心网友 时间:2023-09-10 20:45
生成了的随机数保存在一个数组中,在循环数组判断,如果有些数则移除。。。。