2017-02-02 3 views
1

Ich versuche, ein Objekt-Array in Java zu sortieren. Ich habe zum Beispiel erstellt:Wie Objekt Array in aufsteigender Reihenfolge basierend auf Instanzvariablen sortiert werden

Employee[] hourly = new Employee[]; 

Dann hatte die Benutzereingabewerte für die name, id, hourly pay. Wie stellen

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

dann die name als Stachel id als int und hourly pay als doppelt speichern. Von dort musste ich das Objekt-Array Employee nach Stundenlohn in aufsteigender Reihenfolge sortieren.

Ich möchte dies ohne Komparator oder Array-Liste tun.

+3

Gibt es Gründe, warum Sie nicht möchten, zum Vergleichen entworfen entweder der Werkzeuge benutzen? – AntonH

+1

Haben Sie schon versucht, einen * beliebigen * Sortieralgorithmus zu implementieren? –

+0

"Ich möchte dies ohne Komparator oder Array-Liste." Das ist nett oder mag Angeln ohne Haken, Netz oder Speer. Warum nicht die Tools verwenden, die die Sprache bietet? Aber wenn Sie die integrierten Tools wirklich nicht verwenden möchten, schreiben Sie Ihre eigene Sortierung: bubblesort, insertion sort, quicksort usw. –

Antwort

1

Ich möchte dies ohne Komparator oder Array-Liste tun.

können Sie entweder lassen Sie Ihre Mitarbeiter-Klasse implementiert Comparable dann sortieren sie mit 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); 

ODER

Ihre eigenen Sortiermethode implementieren, wo Sie sortieren nach der Stundenlohn eines jeden Mitarbeiters Objekt. Die Art, wie Sie es sortieren, ähnelt dem Sortieren eines Integer-Arrays.

Zum Beispiel, statt zu schreiben ..

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

Sie mit dem Schreiben wird ..

if(employee[i].getHourlyPay() < min) 
Verwandte Themen