G
Gelöschtes Mitglied 46335
Gast
Guten Abend community,
ich habe folgendes Problem: Ich habe ein Objektarray erstellt mit den Objekten Artikel(String name, int preis, String gtin) ich möchte diese Objekte jetzt mithilfe von einem Radixsort sortieren. Konkrete Frage: Wie ziehe ich den String rtaus und sortiere dann die Objekte damit? Erklärungen zu int sortierung mit radix gibts genug aber String bin ich echt überfordert!!! Gibts jm. der mir vielleicht irgendwie behilflich sein kann. Brauche keine komplette Lösung nur mal einen Ansatz...??? :L
Danke schon mal
]
ich habe folgendes Problem: Ich habe ein Objektarray erstellt mit den Objekten Artikel(String name, int preis, String gtin) ich möchte diese Objekte jetzt mithilfe von einem Radixsort sortieren. Konkrete Frage: Wie ziehe ich den String rtaus und sortiere dann die Objekte damit? Erklärungen zu int sortierung mit radix gibts genug aber String bin ich echt überfordert!!! Gibts jm. der mir vielleicht irgendwie behilflich sein kann. Brauche keine komplette Lösung nur mal einen Ansatz...??? :L
Danke schon mal
Java:
import java.util.Random;
public class Artikel implements Comparable<Artikel> {
private String name;
private int preis;
private String gtin13; // 13-stellig GTIN-Nummer
public static final int GTIN_LENGTH = 13;
public Artikel(String name, int preis, String gtin) {
this.name = name;
this.preis = preis;
this.gtin13 = gtin;
}
public String gibGtin13() {
return gtin13;
}
public String toString() {
int euro = preis / 100;
int cent = preis % 100;
String preisStr = euro + "," + String.format("%02d", cent);
return name + ", GTIN-13 " + gtin13 + ", Preis: " + preisStr + " EUR";
}
/**
* Sortiert ein Feld von Artikeln nach GTIN-Nummer mittels Radixsort
*
* @param aliste
* Liste der Artikel
*/
public static void gtinSort(Artikel[] aliste) {
// hier komme ich einfach nicht weiter :D
}
@Override
public int compareTo(Artikel other) {
return gtin13.compareTo(other.gtin13);
}
/** erzeugt ein Feld mit anzahl vielen Artikeln */
public static Artikel[] generiereArtikelListe(int anzahl) {
Artikel[] aliste = new Artikel[anzahl];
Random rand = new Random();
for (int i = 0; i < aliste.length; i++) {
String name = "Artikel_" + i;
// int preis = rand.nextInt(1000);
int preis = i;
// 13 Ziffern für GTIN zufällig auswählen
String ean = "";
for (int pos = 0; pos < GTIN_LENGTH; pos++) {
ean += rand.nextInt(10);
}
aliste[i] = new Artikel(name, preis, ean);
}
return aliste;
}
}