数组02
2.1 选择排序:拿第一个值跟所有值比较
案例一:查询数组中的值
案例一:
package com.lyc.test; import java.util.Scanner; public class ArrayDemo01 { //查询数组中的值 public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = {12,23,4,65,78}; System.out.print("输入一个要查找的数据:"); int num = sc.nextInt(); boolean f = true; for(int i=0;i<arr.length;i++){ //判断num的值是否等于数组里面的一个元素 if(num == arr[i]){ f = true; break; } else{ f = false; } } if(f){ System.out.print("这个值在数组中被包含"); }else{ System.out.print("查无此人"); } } }
案例二:选择排序 降序
package com.lyc.test; public class ArrayDemo02 { //选择排序 降序 public static void main(String[] args) { int[] arr = {12,23,4,56,3}; for(int i=0;i<arr.length;i++){ for(int j = i+1;j<arr.length;j++){ if(arr[i]<arr[j]){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } } }
结果:
案例三:将数组中的元素76改为6
package com.lyc.test; public class ArrayDemo03 { // 将数组中的元素76改为6; public static void main(String[] args) { int[] arr = { 12, 32, 4, 76, 15 }; int index = 0;// 记录下标 for (int i = 0; i < arr.length; i++) { if (arr[i] == 76) { index = i; } } arr[index] = 6; for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } }
案例四:删除元素,并将该元素后面的元素往前移动
package com.lyc.test; public class ArrayDemo03 { public static void main(String[] args) { int[] arr = { 12, 34, 56, 78, 89 }; // 删除56,将78 和 89 往前移一位 int index = 0;// 记录下标 for (int i = 0; i < arr.length; i++) { if (arr[i] == 56) { index = i; } } // 将index以后的值往前移动 for (int a = index; a < arr.length - 1; a++) { arr[a] = arr[a + 1]; } arr[arr.length - 1] = 0; for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } }
2.2 冒泡排序:相邻两个值比较
案例五:替换
package com.lyc.test; import java.util.Scanner; public class ArrayDemo05 { public static void main(String[] args) { /** * 替换: 有一个数组arr, 数组元素{"奥巴马","普京","哥白尼","泽东","列宁","金正日"}, * 实现一个替换功能, 如果你查找的人存在的话, 就询问需要替换的另一个人名, * 否则提示:查无此人 * 输出要求: 替换前和替换后对比 */ Scanner sc = new Scanner(System.in); //int[] arr = new int[5]; String[] names = {"奥巴马","普京","哥白尼","泽东","列宁","金正日"}; boolean bool = true; int index = 0; System.out.print("请输入要查找的姓名:"); String xinMing = sc.next(); for(int i=0;i<names.length;i++){ if(xinMing.equals(names[i])){ bool = true; index = i; break; }else{ bool = false; } } if(bool == true){ System.out.print("请输入代替的姓名:"); String xm = sc.next(); names[index] = xm; }else{ System.out.print("查无此人!"); } System.out.println(); for(int i=0;i<names.length;i++){ System.out.print(names[i]+" "); } } }
案例六:冒泡排序
package com.lyc.test; public class ArrayDemo06 { public static void main(String[] args) { int[] arr = new int[] { 45, 12, 6, 98, 3 }; for (int x = 0; x < arr.length - 1; x++) { for (int y = 0; y < arr.length - 1 - x; y++) { if (arr[y] > arr[y + 1]) { int temp = arr[y]; arr[y] = arr[y + 1]; arr[y + 1] = temp; } } } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
结果:
2.3 在java中为了排序,Java添加了一个属性(工具包),这个工具包会自动的排序
Arrays类------Arrays.sort() 升序排序
package com.lyc.test; import java.util.Arrays; public class ArrayDemo07 { public static void main(String[] args) { int[] arr = new int[] { 45, 12, 6, 98, 3 }; Arrays.sort(arr); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
结果:同案例六