簡體   English   中英

將對象添加到arraylist並對其進行排序

[英]Adding objects to arraylist and sorting it

我編寫了一個程序,在其中將對象添加到arraylist,然后按ID對其進行排序。 這是我的程序:

package TestPackage;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

import com.fulcrum.emp.EmployeeSortById;

public class EmployeeSorting {
    // path till 'employee files' folder.
    File folder = new File("D:\\Arthi iyer\\employee files");

    // listFiles() : list all the files in a folder.
    File[] listOfFiles = folder.listFiles();

    ArrayList<Employee> emp = new ArrayList<Employee>();
    String[] split_input = null;

    public void sortFiles() throws FileNotFoundException {

        for (File file : listOfFiles) {
            Scanner scanner = new Scanner(file);
            String input = scanner.nextLine();
            split_input = input.split("=");
            int id = Integer.parseInt(split_input[1]);

            String input1 = scanner.nextLine();
            split_input = input1.split("=");
            String name = split_input[1];

            String input2 = scanner.nextLine();
            split_input = input2.split("=");
            int age = Integer.parseInt(split_input[1]);

            // Employee e=new Employee(id, name, age);
            // System.out.println(e);
            emp.add(new Employee(id, name, age));
            // System.out.println(emp.size());

            // for(int i=0;i<emp.size();i++)
            // {
            // System.out.println(emp.get(i) +""+i);
            // }

        }// for ends
    }// method ends

    public void sortByID() {

        System.out.println("----Sort By Employee Id----");
        Collections.sort(emp, new EmployeeSortById());
    }

    public static void main(String[] args) throws FileNotFoundException {

        EmployeeSorting sort = new EmployeeSorting();
        sort.sortFiles();
        sort.sortByID();

    }

}

我的問題是它給出一個錯誤說:

集合類型中的方法sort(List,Comparator)不適用於參數(ArrayList,EmployeeSortById)

但是在我的EmployeeSortById類中,我已經正確實現了Comparator<Employee> 仍然有問題。 誰能指導我?

您需要在使用前定義EmployeeSortById

public class EmployeeSortById implements Comparator{

public int compare(Employee o1, Employee o2) {
    Employee p1 = (Employee) o;
    Employee p2 = (Employee) o; 
    return p1.getEmployeeId() - p2.getEmployeeId();
}}

public void sortByID() {

    System.out.println("----Sort By Employee Id----");
    Collections.sort(emp,EmployeeSortById );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM