Hallo,
ich habe hier eine Aufgabe und weiß nicht genau wie ich beginnen soll.
Aufgabe:
Schreiben Sie ein Klasse ArraySortierer mit dem Attribut String[] data und den folgenden vier Methoden:
Bei Aufruf von criteriaSort(1) soll nach der Länge der Zeichenkette aufsteigend sortiert werden.
Bei Aufruf von criteriaSort(2) soll alphabetisch absteigend sortiert werden.
Implementieren Sie die Methoden arraySortierer und criteriaSort sowie die notwendigen Komparatoren. Verwenden Sie den gegeben bubbleSort-Algorithmus aus der Klasse ArraySortierer.
So das ist die Aufgabe, leider weiß ich nicht so recht wie ich das machen soll.
Ich kenne den Comparator nur als eigenständige Klasse die auf Objekte der anderen Klasse zugreift.
Und dann mit Hilfe von compareTo 2 Objekte vergleicht und dann sortiert. Wie kann ich das hier machen, muss ich die methode bubble angeben ?
Hier mal ein wohl fehlerhafter Anfang von mir:
ich habe hier eine Aufgabe und weiß nicht genau wie ich beginnen soll.
Aufgabe:
Schreiben Sie ein Klasse ArraySortierer mit dem Attribut String[] data und den folgenden vier Methoden:
Java:
public arraysortierer(ArrayList<String> data)
public void criteriaSort(int criteria)
public void bubble(String[] a, Comparator<String> c) {
for (int i = 0; i< a.length; i++)
for (int j = 1; j< a.length-i; j++) {
if (c.compare(a[j-1], a[j]) > 0 )
swap(a, j-1, j);
}
}
private void swap(String[] a, int pos1, int pos2){
String hlp = a[pos1];
a[pos1] = a[pos2];
a[pos2] = hlp;
}
Bei Aufruf von criteriaSort(1) soll nach der Länge der Zeichenkette aufsteigend sortiert werden.
Bei Aufruf von criteriaSort(2) soll alphabetisch absteigend sortiert werden.
Implementieren Sie die Methoden arraySortierer und criteriaSort sowie die notwendigen Komparatoren. Verwenden Sie den gegeben bubbleSort-Algorithmus aus der Klasse ArraySortierer.
So das ist die Aufgabe, leider weiß ich nicht so recht wie ich das machen soll.
Ich kenne den Comparator nur als eigenständige Klasse die auf Objekte der anderen Klasse zugreift.
Und dann mit Hilfe von compareTo 2 Objekte vergleicht und dann sortiert. Wie kann ich das hier machen, muss ich die methode bubble angeben ?
Hier mal ein wohl fehlerhafter Anfang von mir:
Java:
public class ArraySortierer <String> {
public arraySortierer (ArrayList<String> data) {
x = data;
}
public void criteriaSort (int criteria)
if(criteria ==1){
Comparator comp = new Comparator();
comp.compare(a, c);
}else{
Comparator comp1 = new Comparator();
comp1.compare1(a,c);
}
public class StringComparator implements Comparator <ArraySortierer> {
public int compare (ArraySortierer a , ArraySortierer c) {
x = a.length().compareTo(c.length());
return x;
}
public int compare1 (ArraySortierer a, ArraySortierer c) {
x = a.bubble().compareTo(c.bubble());
return x;
}