2017-02-02 109 views
1

我想對Java中的對象數組進行排序。我已經例如創建:如何基於實例變量以升序對對象數組進行排序

Employee[] hourly = new Employee[]; 

然後有用戶輸入值的nameidhourly pay。比如問

System.out.println("Please enter employee name, id and hourly pay"); 

然後存儲name爲刺痛idinthourly pay爲雙。從那裏我需要按小時工資升序排列對象數組Employee

我想這樣做沒有比較器或數組列表。

+3

任何理由,你爲什麼不想爲使用而設計的比較工具? – AntonH

+1

那麼你是否試圖自己實現*任何*排序算法呢? –

+0

「我想在沒有比較器或數組列表的情況下執行此操作。」這很好,或者喜歡在沒有鉤子,網或矛的情況下釣魚。爲什麼不使用該語言提供的工具?但是如果你真的不想使用內置的工具,那就編寫你自己的排序:bubblesort,插入排序,快速排序等。 –

回答

1

我想這樣做沒有比較器或數組列表。

你可以讓你的員工類實現Comparable在排序與Arrays.sort(employeeArray);

public class Employee implements Comparable<Employee> 
{ 
    //Constructors and other members not shown 
    @Override 
    public int compareTo(Employee e){ 
     return (getHourlyPay() - e.getHourlyPay()); 
    } 
} 
Arrays.sort(employeeArray); 

OR

實現您在其中,根據每個員工的時薪自己的排序方法目的。你如何排序它的方式將類似於對整數數組進行排序。

例如,而不是寫..

if (array[i] < min) //where array[i] is of type int 

你會寫..

if(employee[i].getHourlyPay() < min) 
相關問題