黑马程序员技术交流社区

标题: 练习:一维数组的常见操作 [打印本页]

作者: fmi110    时间: 2015-9-19 08:47
标题: 练习:一维数组的常见操作
a
  1. import java.util.Arrays;
  2. import java.util.Scanner;

  3. /**
  4. * 数组常见操作: 数组遍历(依次输出数组中的每一个元素)
  5. * 数组获取最值(获取数组中的最大值最小值)
  6. * 数组查表法(根据键盘录入索引,查找对应星期)
  7. * 数组元素查找(查找指定元素第一次在数组中出现的索引)
  8. * 数组元素逆序 (就是把元素对调)
  9. */
  10. public class Test7 {
  11.         public static void main(String[] args) {
  12.                 int[] arr = { 1, 4, 2, 43, 213, 3, 5 };
  13.                 printArr(arr);
  14.                 getMaxAndMin(arr);
  15.                 checkTable();

  16.                 int index = getFirstTime(arr);
  17.                 System.out.println("你查找的数第一次出现在:" + index);

  18.                 reverseArr(arr);
  19.         }

  20.         // 查找元素第一次出现时的索引,没有则返回 -1
  21.         private static int getFirstTime(int[] arr) {
  22.                 int index = -1;
  23.                 System.out.println("请输入要查找的数字:");
  24.                 int num = new Scanner(System.in).nextInt();
  25.                 System.out.println(num);
  26.                 for (int i = 0; i < arr.length; i++) {
  27.                         if (num == arr[i]) {
  28.                                 System.out.println(i);
  29.                                 return i;
  30.                         }
  31.                 }
  32.                 return index;
  33.         }

  34.         // 查表法查星期
  35.         private static void checkTable() {
  36.                 String[] day = { "", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天" };
  37.                 System.out.println("请输入索引,范围1-7:");
  38.                 int num = new Scanner(System.in).nextInt();
  39.                 if (num <= 7 && num >= 1) {
  40.                         System.out.println("你输入的是" + day[num]);
  41.                 } else
  42.                         System.out.println("输入数字错误!!");
  43.         }

  44.         // 数组逆序
  45.         private static void reverseArr(int[] arr) {
  46.                 int end = arr.length - 1;
  47.                 int start = 0;
  48.                 for (; start < end; start++, end--) {
  49.                         int temp = arr[start];
  50.                         arr[start] = arr[end];
  51.                         arr[end] = temp;
  52.                 }
  53.                 System.out.println("逆序后的数组:");
  54.                 printArr(arr);
  55.         }

  56.         // 获取最大最小值
  57.         private static void getMaxAndMin(int[] arr) {
  58.                 // 将数组排序,然后获取最大最小值
  59.                 int max, min;
  60.                 // 复制一个数组,防止修改原数组的顺序
  61.                 int[] tempArr = Arrays.copyOfRange(arr, 0, arr.length);
  62.                 Arrays.sort(tempArr);
  63.                 min = tempArr[0];
  64.                 max = tempArr[tempArr.length - 1];
  65.                 System.out.println("min = " + min + ", max = " + max);
  66.                 printArr(arr);
  67.         }

  68.         // 数组遍历
  69.         private static void printArr(int[] arr) {
  70.                 System.out.println("数组元素:");
  71.                 for (int i : arr) {
  72.                         System.out.print(i + " ");
  73.                 }
  74.                 System.out.println();
  75.         }
  76. }
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2