Java 搜索方法似乎不错,但不是我的if语句来初始化它

Java 搜索方法似乎不错,但不是我的if语句来初始化它,java,arrays,sorting,search,Java,Arrays,Sorting,Search,我能得到一些帮助吗?我不知道如何让我的If语句搜索一个学生来工作。我得到一个错误: incompatible types found : Student required: boolean if (search(name, students)) 另外,我不知道如何实现冒泡排序 public class StudentProcessor2 { public static void main(String[] args) { Scanner input = new

我能得到一些帮助吗?我不知道如何让我的If语句搜索一个学生来工作。我得到一个错误:

incompatible types
found   : Student
required: boolean
if (search(name, students))
另外,我不知道如何实现冒泡排序

public class StudentProcessor2 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        // read in how many students to process
        System.out.print("How many students?");
        int numStudents = input.nextInt();

        Student[] students = new Student[numStudents];

        for (int i = 0; i < numStudents; i++) {
            // read in student data from Scanner
            System.out.println("What is the students name?");
            String name = input.next();

            System.out.println("What is the students grade?");
//          System.out.println("***Type -1 if no more grades***");
            int grade = input.nextInt();
            Student student = new Student();
            student.setName(name);
            student.setGrade(grade);
            students[i] = student;
        }
        UserSelection(input, numStudents, students);
    }

    // show menu with options
    public static void UserSelection(Scanner input, int numStudents,
            Student[] students) {
        // Repeatedly process menu selections by the user.
        int choice;
        do {
            System.out.println();
            System.out.println("*** Student Exam Results Menu ***");
            System.out.println("(1) Display the results");
            System.out.println("(2) Display the average result");
            System.out.println("(3) Display the highest grade");
            System.out.println("(4) Display the lowest grade");
            System.out.println("(5) Search for specific result");
            System.out.println("(6) Search for student grade by name");
            System.out.println("(7) Sort the results in ascending order");
            System.out.println("(8) quit");
            choice = input.nextInt();

            if (choice == 1)
            {
                System.out.println(Arrays.toString(students));
            } else if (choice == 2)

            {
                double average = getAverage(students);
                System.out.println("average grade = " + average);
            } else if (choice == 3)

            {
                int high = getHighest(students);
                System.out.println("high grade = " + high);
            } else if (choice == 4)

            {
                int low = getLowest(students);
                System.out.println("low grade = " + low);

            } else if (choice == 5)

            {
                System.out.print("Result to look for: ");
                int grade = input.nextInt();
                 if (result(grade, students)) {
                 System.out.println(grade +
                 " is in the collection of grades.");
                 } else

                 {
                 System.out.println(grade +
                 " is not in the collection of grades.");
                 }

            } else if (choice == 6)

            {
                System.out.print("Student to search for: ");
                String name = input.nextLine();
                if (search(name, students))
                {
                    System.out.println(name +
                    " is in the list of Students.");
                } else
                {
                System.out.println(name +
                " is not in the list of Students");
                }
            }

        } while (choice != 8);
    }

    // get Lower Grade
    private static int getLowest(Student[] students) {
        int lowest = 100;
        Student result = null;
        for (Student student : students) {
            if (student.getGrade() < lowest) {
                lowest = student.getGrade();
                result = student;
            }
        }
        return result.getGrade();
    }

    // get Highest grade
    private static int getHighest(Student[] students) {
        int highest = 0;
        Student result = null;
        for (Student student : students) {
            if (student.getGrade() > highest) {
                highest = student.getGrade();
                result = student;
            }
        }
        return result.getGrade();
    }

    // get Average grade
    private static double getAverage(Student[] students) {
        int total = 0;
        for (Student student : students) {
            total += student.getGrade();
        }
        return total / students.length;
    }

    // Search for student
    private static Student search(String name, Student[] students) {
        Student result = null;
        for (Student student : students) {
            if (student.getName().equalsIgnoreCase(name)) {
                result = student;
                break;
            }
        }
        return result;
    }
    // Search for grade
    private static boolean result(int grade, Student[] students) {
        for (Student student : students) {
            if (student.getGrade() == grade) {
                return true;
            }
        }
        return false;
    }

    // !Bubble sort goes here!
    private void sort(Student[] students) {

        Student hold; // temporary holding area for swap

        for (int i = 0; i < students.length; i++) { // passes
            Student current = students[i];
            Student next = students[i + 1];
            if (current.getGrade() > next.getGrade()) // one comparison
            {
                hold = students[i]; // one swap
                students[i] = students[i + 1];
                students[i + 1] = hold;
            }
        }
    }
}
公共类学生处理器2{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
//阅读要处理的学生人数
系统输出打印(“有多少学生?”);
int numStudents=input.nextInt();
学生[]学生=新学生[numStudents];
对于(int i=0;i最高){
最高=student.getGrade();
结果=学生;
}
}
返回result.getGrade();
}
//得平均分
私人静态双平均(学生[]学生){
int-total=0;
用于(学生:学生){
总计+=student.getGrade();
}
返回总长度/students.length;
}
//寻找学生
私有静态学生搜索(字符串名称,学生[]学生){
学生成绩=空;
用于(学生:学生){
if(student.getName().equalsIgnoreCase(name)){
结果=学生;
打破
}
}
返回结果;
}
//搜索等级
私有静态布尔结果(整数级,学生[]学生){
用于(学生:学生){
if(student.getGrade()==成绩){
返回true;
}
}
返回false;
}
//!泡泡排序在这里!
私有无效排序(学生[]学生){
学生等待;//交换的临时等待区
对于(int i=0;inext.getGrade())//一次比较
{
hold=学生[i];//一次交换
学生[i]=学生[i+1];
学生[i+1]=持有;
}
}
}
}

您的
搜索
方法返回一个
学生
对象
,以便检查返回的实例
if
语句表达式必须是
boolean
表达式,因此会出现错误。
if (search(name, students))
if (search(name, students) == null)