数组的常用操作
1.生成随机长度且不重复的数组
public class Test {
public static void main(String[] args) {
//注意100以内取值范围为0~99,若要是1~100,则为:int num = rand.nextInt(100)+1,
// 若想取到0~100,则应该写成int num = rand.nextInt(101);
//int num = (int)Math.rand(); 随机数的取值范围为 [0,1)之间的小数,类型是double
//1.生成10个不重复的随机1~100的整数
Random rand = new Random();
int[] array = new int[10000];
int size = 0;
array[size++] = rand.nextInt(1000000)+1;//第一个值不需要验证是否已经重复
boolean no;
for (int t; size <array.length ; ) {
t = rand.nextInt(1000000)+1;
no = true;
for (int j = 0; j <size ; j++) {
if(array[j]==t){
no = false;
break;
}
}
if(no){
array[size++] = t;
}
}
//遍历数组元素:随机生成array.length个取值范围为数组长度100倍的随机数
for (int i = 0; i <array.length ; i++) {
array[i] = rand.nextInt(LIMIT);
}
2.求数值型数组中元素的最大值、最小值、平均数、总和等
/*
*
* 定义一个 int 型的一维数组,包含 10 个元素,分别赋一些随机整数,
* 然后求出所有元素的最大值,最小值,和值,平均值,并输出出来。
* 要求:所有随机数都是两位数。
*
* [10,99]
* 公式:(int)(Math.random() * 89 + 10)
*/
public class ArrayTest1 {
public static void main(String[] args) {
int[] arr = new int[10];
//数组赋值
for(int i = 0;i <arr.length;i++){
arr[i] = (int)(Math.random() * (99 - 10 + 1) + 10);
}
//遍历
for(int i =0;i < arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
//求数组元素的最大值
int maxValue = arr[0];
for(int i = 1;i <arr.length;i++){
if(maxValue < arr[i]){
maxValue = arr[i];
}
}
System.out.println("最大值:" + maxValue);
//求数组元素的最小值
int minValue = arr[0];
for(int i = 1;i <arr.length;i++){
if(minValue > arr[i]){
minValue = arr[i];
}
}
System.out.println("最小值:" + minValue);
//求数组元素的总和
int sum = 0;
for(int i = 1;i <arr.length;i++){
sum += arr[i];
}
System.out.println("总和:" + sum);
//求数组元素的平均数
double avgVales = sum / arr.length;
System.out.println("平均数:" + avgVales);
}
}