2022Java学习笔记十二(数组的遍历,数组遍历求和,数组排序,数组随机排名案例,数组猜数字游戏案例,数组求最大值案例,数据遍历求和案例)
遍历:就是逐个数据的访问
数组遍历的快捷键【数组名.fori+回车】
package com.zcl.traverse;public class Demo {public static void main(String[] args) {int age[] &#61; {1,2,3,4,5,68,54,652};for (int i &#61; 0; i < age.length; i&#43;&#43;) {System.out.println(age[i]);}}
}
数据遍历求和案例
需求&#xff1a;
某部门5位员工的销售额分别是&#xff1a;16,32,8,100,78计算部门的总销售额
package com.zcl.traverse;public class DemoTest {public static void main(String[] args) {int[] money &#61; {16,32,8,100,78};int sum &#61; 0;for (int i &#61; 0; i < money.length; i&#43;&#43;) {sum&#43;&#61;money[i];}System.out.println("数组的和是&#xff1a;"&#43;sum);}
}
数组求最大值案例
定义一个数组&#xff0c;比较最大值
package com.zcl.traverse;public class tese {public static void main(String[] args) {int[] arr &#61; {12,445,4548,1242,15,-5};int max &#61; arr[0];for (int i &#61; 0; i < arr.length; i&#43;&#43;) {if(arr[i] > max){max&#61;arr[i];}}System.out.println("数组的最大值是&#xff1a;"&#43;max); }
}
数组猜数字游戏案例
package com.zcl.traverse;import java.util.Random;
import java.util.Scanner;public class test2 {public static void main(String[] args) {int[] arr &#61; new int[5];Random r &#61; new Random();for (int i &#61; 0; i < arr.length; i&#43;&#43;) {arr[i] &#61; r.nextInt(20)&#43;1;}Scanner sc &#61; new Scanner(System.in);OUT:while (true){System.out.println("请猜测1-20之间的数字&#xff1a;");int guessData &#61; sc.nextInt();for (int i &#61; 0; i < arr.length; i&#43;&#43;) {if(arr[i] &#61;&#61; guessData){System.out.println("您猜中了缩影是&#xff1a;"&#43;i);break OUT;}}System.out.println("当前猜测数据不存在");}for (int i &#61; 0; i < arr.length; i&#43;&#43;) {System.out.print(arr[i]&#43;"\t");}}
}
数组随机排名案例
扑克牌游戏可以用来洗牌
package com.zcl.traverse;import java.util.Random;
import java.util.Scanner;public class test3 {public static void main(String[] args) {int[] codes &#61; new int[5];Scanner sc &#61; new Scanner(System.in);for (int i &#61; 0; i < codes.length; i&#43;&#43;) {System.out.println("请输入第"&#43;(i&#43;1)&#43;"个工号信息");int code &#61; sc.nextInt();codes[i] &#61; code;}Random r &#61; new Random();for (int i &#61; 0; i < codes.length; i&#43;&#43;) {int index &#61; r.nextInt(codes.length);int temp &#61; codes[index];codes[index]&#61;codes[i];codes[i]&#61;temp;}for (int i &#61; 0; i < codes.length; i&#43;&#43;) {System.out.print(codes[i]&#43;"\t");}}
}
数组的排序
就是对数组中的元素&#xff0c;进行升序&#xff08;由小到大&#xff09;或降序&#xff08;由大到小&#xff09;的操作
排序的技术&#xff1a;
- 冒泡排序
每次从数组中找出最大值放在数组的后面去
思想&#xff1a;
从头开始两两比较&#xff0c;把较大的元素与较小的元素进行交换
没轮把当前最大的一个元素存入到数组当前的末尾
实现步骤&#xff1a;
定义一个外部循环控制总共需要冒几轮【数组的长度-1】
定义一个内部循环&#xff0c;控制每轮依次往后比较几个位置【数组长度-i-1】
如果当前位置的元素值》后一个元素值&#xff0c;两者交换 - 选择排序
- 快速排序
- 插入排序
数据搜索的相关技术
- 二分搜索
- 分块搜索
- 哈希表查找
package com.zcl.traverse;public class test4 {public static void main(String[] args) {int[] arr &#61; {5,3,2,9};for (int i &#61; 1; i <&#61; arr.length-1; i&#43;&#43;) {for (int j &#61; 0; j < arr.length-1; j&#43;&#43;) {if(arr[j] > arr[j&#43;1]){int temp &#61; arr[j&#43;1];arr[j&#43;1]&#61;arr[j];arr[j]&#61;temp;}}}for (int i &#61; 0; i < arr.length; i&#43;&#43;) {System.out.print(arr[i]&#43;"\t");}}
}