数组遍历
就是一个一个数据的访问
快捷方式
- 在IDEA中 arr.fori 敲回车 就可以显示出来
案例
- 如何用遍历求最大值?
public static void main(String[] args) {
int[] score={15,9000,9500,10000,0,-5};
//max存储最大值元素 一般用第一个元素 也就是[0]
int max = score[0];
for (int i = 0; i < score.length; i++) {
if (score[i] >max){
max = score[i];
}
}
System.out.println(max);
}
2.猜数字游戏
public class ArrayDemo2 {
public static void main(String[] args) {
//定义一个动态初始化的数组存储5个1-20的数据
int[] data = new int[5];
//动态的生成5个1-20间随机数存入数组中
Random r = new Random();
for (int i = 0; i < data.length; i++) {
data[i] = r.nextInt(20) + 1;
}
//使用一个死循环让用户猜测
Scanner sc = new Scanner(System.in);
OUT:
while(true){
System.out.println("请您输入一个1-20间的整数");
int guess = sc.nextInt();
//遍历数组中的数据
for (int i = 0; i < data.length; i++) {
if (data[i]==guess){
System.out.println("您已经猜中了 对应索引为: "+ i);
break OUT;//结束了整个死循环 代表游戏结束
}
System.out.println("当前数据不再数组中 请重新猜测!");
}
}
//输出的全部全素 让用户看到
for (int i = 0; i < data.length; i++) {
System.out.println(data[i]+"\t");
}
3.随机排名
public static void main(String[] args) {
//
int [] codes = new int[5];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < codes.length; i++) {
//正式录入工号
System.out.println("请您输入第"+(i + 1)+"个员工的工号");
int code = sc.nextInt();
codes[i] = code;
}
// 遍历数组中每个元素 随机一个索引出来 让元素与索引交换
Random r = new Random();
for (int i = 0; i < codes.length; i++) {
//当前元素值:code[i]
int index = r.nextInt(codes.length);
//定义一个临时变量
int temp = codes[index];
codes[index] = codes[i];
codes[i] = temp;
}
for (int i = 0; i < codes.length; i++) {
System.out.println(codes[i] + "\t");
}
}
总结
- 如何实现随机排名?
1.定义一个动态初始化的数组用于录入数据
2.遍历数组中每个元素,每次随机一个索引值,让当前元素与索引位置处元素交换
3.遍历输出数组中的内容即可
数组排序
就是对数组中的元素、进行升序或者降序的操作
技术
- 冒泡排序
- 选择排序
- 快速排序
- 插入排序
- …
数组搜索相关的技术
- 二分搜索
- 分块查找
- 哈希表查找
- …
冒泡排序
每次从数组中找出最大值放在数组的后面
package traverse;
import java.util.Random;
import java.util.Scanner;
public class ArrayDemo3 {
public static void main(String[] args) {
//
int [] codes = new int[5];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < codes.length; i++) {
//正式录入工号
System.out.println("请您输入第"+(i + 1)+"个员工的工号");
int code = sc.nextInt();
codes[i] = code;
}
// 遍历数组中每个元素 随机一个索引出来 让元素与索引交换
Random r = new Random();
for (int i = 0; i < codes.length; i++) {
//当前元素值:code[i]
int index = r.nextInt(codes.length);
//定义一个临时变量
int temp = codes[index];
codes[index] = codes[i];
codes[i] = temp;
}
for (int code : codes) {
System.out.println(code + "\t");
}
}
}