前言

b站java课程学习笔记整理。

b站视频:黑马程序员全套Java教程_Java基础入门视频教程,零基础小白自学Java必备教程

94. 数组元素求和

需求,有一个数组{68,27,95,88,171,996,51,210},求出该数组中满足要求的元素和。要求:求和的元素个位和十位都不能是7,并且只能是偶数。

package 数组元素求和;

public class SumArray {
    public static void main(String[] args) {
        int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};
        int sum = 0;
        for (int i = 0; i < arr.length; i++)
            if (arr[i] % 10 != 7 && arr[i] / 10 % 10 != 7 && arr[i] % 2 == 0) {
                sum += arr[i];
            }
        System.out.println(sum);
    }
}

95.数组内容相同

需求:比较两个数组内容是否相同。

package 数组内容相同;

public class Compare {
    public static void main(String[] args) {
        int[] arr_1 ={1,2,3,88};
        int[] arr_2 = {1,2,3,88};

        System.out.println(compare(arr_1,arr_2));
    }
    public static boolean compare(int[] arr1, int[] arr2){
        if (arr1.length != arr2.length){
            return false;
        } else{
            for(int i=0; i<arr1.length;i++){
                if (arr1[i] != arr2[i]){
                    return false;
                }
            }
        }
        return true;
    }
}

96.查找

已知一个数组arr = {19,28,37,46,50},键盘录入一个数据,查找该数据在数组中的索引值。

import java.util.Scanner;

public class search {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        System.out.println(check(input));
    }


    public static int check(int num) {
        int[] arr = {19, 28, 37, 46, 50};
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == num) {
                return i;
            }
        }
        return -1;
    }
}

个人认为比老师的简单点。

97.反转

已知一个数组arr = {19,28,37,46,50};用程序实现元素顺序的反转。

public class Convert {
    public static void main(String[] args) {
        int[] arr = {19, 28, 37, 46, 50};
        int[] arr2 = new int[arr.length];
        
        for (int i = 0; i < arr.length; i++) {
            arr2[arr.length - i - 1] = arr[i];
        }
        bianli(arr2);
    }

    public static void bianli(int[] arr) {
        System.out.print("[");
        for (int j = 0; j < arr.length; j++) {
            System.out.print(arr[j]);
            if (j != arr.length - 1) {
                System.out.print(",");
            }
        }
        System.out.print("]");
    }
}

个人觉得比老师的方法简单!

98.评委打分

需求(老师的升级版): 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。 选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分)。

package 评委打分;

import java.util.Scanner;
import java.util.Arrays;

public class pingwei {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] array = new int[6];
        for(int i = 0; i < 6; i++){
            System.out.println("请输入第"+ (i + 1) +"个评委的打分!");
            array[i] = sc.nextInt();
        }

        System.out.println("去掉一个最高分" + array[gotMax(array)] );
        System.out.println("去掉一个最低分" + array[gotMin(array)] );
        int[] arrayNew = meanArrGenerate(array, gotMax(array), gotMin(array));
        System.out.println("最终的得分(平均分为)" + getMean(arrayNew) );


    }

    public static int[] meanArrGenerate(int[] array, int flag1, int flag2 ) {
        int[] array_temp = new int[array.length-2];
        int count = 0;
        for (int i = 0; i< array.length; i++){
            if (i != flag1 && i != flag2){
                array_temp[count] = array[i];
                count++;
            }
        }
        return array_temp;
    }


    public static int gotMax(int[] arr) {
        int[] arr_temp = new int[arr.length];
        int max_value = 0;
        for (int i = 0; i < arr.length; i++) {
            arr_temp[i] = arr[i];
        }
        Arrays.sort(arr_temp);
        max_value = arr_temp[arr.length - 1];
        for (int j = 0; j < arr.length; j++) {
            if (arr[j] == max_value) {
                return j;
            }
        }
        return -1;
    }

    public static int gotMin(int[] arr) {
        int[] arr_temp = new int[arr.length];
        int min_value = 0;
        for (int i = 0; i < arr.length; i++) {
            arr_temp[i] = arr[i];
        }
        Arrays.sort(arr_temp);
        min_value = arr_temp[0];
        for (int j = 0; j < arr.length; j++) {
            if (arr[j] == min_value) {
                return j;
            }
        }
        return -1;
    }

    public static int getMean(int[] arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++){
            sum += arr[i];
        }
        int mean = sum/arr.length;
        return mean;
    }


}

一开始的数据输入如果不知道有几个裁判的话,必须先指定一个大数组用来接收(java中的数组无法做到空定义)。