数组练习题
(一) 求最值
需求: 已知数组元素为 {33 ,5 ,22 ,44 ,55}, 请找出数组中最大值并打印在控制台
public class Demo3 {
public static void main(String[] args) {
int arr[] = {33, 5, 22, 44, 55};
int max = arr[1];//不可以初始化为 0: 假如数组中全是负数, 那么最终输出会为 0.
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
System.out.println(max);
}
}
输出: 55
改为增强 for 循环:
for (int j : arr) {
if (j > max) {
max = j;
}
}
//💌输出: 55
优化:
循环中的第一次比较本质上是 arr[i] 自己和自己比较, 没有意义.
故可以把最开始比较的元素改成第二个元素 arr[2], 减少一次比较.
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
(二) 求和并统计个数
需求:生成10个1~100之间的随机数存入数组。
import java.util.Random;
public class homework {
public static void main(String[] args) {
//定义数组, 生成随机数并存入数组:
Random r = new Random();
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {//⚠️改变数组元素时不可以用 foreach!!!
int num = r.nextInt(100) - 1;
arr[i] = num;
}
//求和:
int sum = 0;
for (int i : arr) {
sum = sum + i;
}
System.out.println("数据和 = " + sum);
//求平均值:
int average = sum / arr.length;
System.out.println("平均值 = " + average);
//求比平均值小的数的个数:
int count = 0;
for (int i : arr) {
if (i < average) {
count++;
}
}
System.out.println("比平均值小的数有 " + count + " 个.");
//检验:
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println();
}
}
(三) 交换数组中的元素
需求: 定义一个数组,存入1, 2, 3, 4, 5. 按照要求交换索引对应的元素.
交换前: 1, 2, 3, 4, 5;
交换后: 5, 4, 3, 2, 1. (依次交换首尾元素.)
public class homework1 {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length / 2; i++) {//循环次数为元素个数的一半.
int temp = arr[i];//临时保存.
arr[i] = arr[arr.length - i - 1];//交换数据. 最前的元素为 arr[1], 最后的元素为 arr[arr.length - i - 1]. (节省了另外创建一个变量的内存)
arr[arr.length - i - 1] = temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
//💌输出: 5 2 3 4 1
(四) 打乱数组内元素顺序
需求: 定义一个数组, 存入 1~5.
要求打乱数组中所有数据的顺序.
import java.util.Random;
public class homework2 {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4, 5};
Random r = new Random();
for (int i = 0; i < arr.length; i++) {
int randomIndex = r.nextInt(arr.length);//获取随机索引.
//交换元素.
int temp = arr[i];
arr[i] = arr[randomIndex];
arr[randomIndex] = temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
注意: 为了避免出现重复, 每次随机都是以交换的形式进行的, 这样就不会出现重复.




Java 数组的一些练习题。
浙公网安备 33010602011771号