1.随机数
定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,
然后求出所有元素的最大值,最小值,和值,平均值,并输出出来。
要求:所有随机数都是两位数。
提示;
提示;
[0,1) * 90 →[0,90) + 10 → [10,100) →[10,99]
(int)(Math.random() * 90 + 10)
公式
求[a,b]的随机数
[10,99]
公式:(int)(Math.random() * (99 - 10 + 1) + 10)
public class ArrayTest1 {
public static void main(String[] args) {
//1.生成数组
int[] arr = new int[10];
//2.给数组赋随机数的值
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] + "\t");
}
System.out.println();
//3.求数组的最大值
int maxNum = arr[0];
for(int i = 0;i < arr.length;i++) {
if(arr[i] > maxNum) {
maxNum = arr[i];
}
}
System.out.println("最大值是:" + maxNum);
//4.求数组最小值
int minNum = arr[0];
for(int i = 0;i < arr.length;i++) {
if(arr[i] < minNum) {
minNum = arr[i];
}
}
System.out.println("最小值是:" + minNum);
//5.求数组的和
double sum = 0;
for(int i = 0;i < arr.length;i++) {
sum += arr[i];
}
System.out.println("和是:" + sum);
//6.求数组的平均值
double average = sum / arr.length;
System.out.println("平均值是:" + average);
}
}
2.数组的复制、反转、查找(线性查找、二分法查找)
public class ArrayTest4 {
public static void main(String[] args) {
String[] arr = new String[] {"JJ","DD","MM","BB","GG","AA"};
//数组的复制(区别于数组变量的赋值)
String[] arr1 = new String[arr.length];
for(int i = 0;i < arr1.length;i++) {
arr1[i] = arr[i];
}
//数组的反转
// for(int i = 0;i < arr.length / 2;i++) {
// String temp = arr[i];
// arr[i] = arr[arr.length - i -1];
// arr[arr.length - i -1] = temp;
//
// }
//遍历
for(int i = 0;i < arr.length;i++) {
System.out.print(arr[i] + " ");
}
//查找(或搜索)
//线性查找:
String test = "BB";
for(int i = 0;i < arr.length;i++) {
if(test.equals(arr[i])) {
System.out.print("找到了指定的元素,位置为:" + i );
break;
}
}
System.out.print("很遗憾,没有找到" + "\n");
//二分法查找:
//前提:所要查找的数组必须有序
int[] arr2 = new int[] {-98,-34,2,34,54,66,79,105,210,333};
int test1 = -35;
int head = 0;//初始的首索引
int end = arr2.length -1;//初始的尾索引
boolean isFlag = true;
while(head <= end) {
int middle = (head + end) / 2;
if(test1 == arr2[middle]) {
System.out.print("找到指定元素,位置为:" + middle);
isFlag = false;
break;
}
else if(test1 < arr2[middle]) {
end = middle -1;
}
else{
head = middle + 1;
}
}
if (isFlag) {
System.out.println("没找到指定元素");
}
}
}