jeudi 14 mai 2015

Radixsort mit String

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 :)

Java Code:

  1.  
  2. import java.util.Random;
  3.  
  4. public class Artikel implements Comparable<Artikel> {
  5. private String name;
  6. private int preis;
  7. private String gtin13; // 13-stellig GTIN-Nummer
  8.  
  9. public static final int GTIN_LENGTH = 13;
  10.  
  11. public Artikel(String name, int preis, String gtin) {
  12. this.name = name;
  13. this.preis = preis;
  14. this.gtin13 = gtin;
  15. }
  16.  
  17. public String gibGtin13() {
  18. return gtin13;
  19. }
  20.  
  21. public String toString() {
  22. int euro = preis / 100;
  23. int cent = preis % 100;
  24. String preisStr = euro + "," + String.format("%02d", cent);
  25. return name + ", GTIN-13 " + gtin13 + ", Preis: " + preisStr + " EUR";
  26. }
  27.  
  28.  
  29.  
  30. /**
  31. * Sortiert ein Feld von Artikeln nach GTIN-Nummer mittels Radixsort
  32. *
  33. * @param aliste
  34. * Liste der Artikel
  35. */
  36. public static void gtinSort(Artikel[] aliste) {
  37. // hier komme ich einfach nicht weiter :D
  38. }
  39.  
  40.  
  41.  
  42.  
  43. @Override
  44. public int compareTo(Artikel other) {
  45. return gtin13.compareTo(other.gtin13);
  46. }
  47.  
  48. /** erzeugt ein Feld mit anzahl vielen Artikeln */
  49. public static Artikel[] generiereArtikelListe(int anzahl) {
  50. Artikel[] aliste = new Artikel[anzahl];
  51.  
  52. Random rand = new Random();
  53.  
  54. for (int i = 0; i < aliste.length; i++) {
  55. String name = "Artikel_" + i;
  56. // int preis = rand.nextInt(1000);
  57. int preis = i;
  58.  
  59. // 13 Ziffern für GTIN zufällig auswählen
  60. String ean = "";
  61. for (int pos = 0; pos < GTIN_LENGTH; pos++) {
  62. ean += rand.nextInt(10);
  63. }
  64.  
  65. aliste[i] = new Artikel(name, preis, ean);
  66. }
  67.  
  68. return aliste;
  69. }
  70.  
  71.  
  72. }
]


Radixsort mit String

0 commentaires:

Enregistrer un commentaire