Ich habe ein Array namens numb
. Es enthält 5 Zahlen (von einer Benutzereingabe) Ein Beispiel für Eingabewerte sind: 5,29,101,100,89.4. Ich übertrage die Elemente dieses Arrays in eine TreeSet
namens ts
mit einer for-Schleife (ich ordne die Elemente in absteigender Reihenfolge). Danach zeige ich dann Elemente dieser TreeSet
mit einem MessageDialog
. Aber das Display zeigt etwas anderes als das, was ich erwarte. Es zeigt [89.4,5,29,101,100]
an.TreeSet Bestellfehler
Wenn ich Zahlen mit dem gleichen Stellenwert einfüge - wie Zehner, Hunderter (wenn das Array nur Zahlen wie 12,56,84,74,65 enthält), sortiert es wie erwartet. Ich weiß nicht, was ich falsch mache.
Hier ist der Code:
import javax.swing.*;
import java.util.*;
public class dollarGUI {
public static void main(String[] agrs){
Hello hello=new Hello();
hello.as();
hello.Order();
hello.Display();
}
}
class Hello {
String[]be = new String[5];
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());
public String[] as() {
for(int i=0; i < 5; i++) {
be[i] = JOptionPane.showInputDialog("enter number");
}
return be;
}
public void Order() {
for(int i=0;i<5;i++) {
ts.add(be[i]);
}
}
public void Display() {
JOptionPane.showMessageDialog(null, ts);
}
}
Strings und Nummern haben nicht die gleiche Sortierreihenfolge. – Perception
Strings sortieren nicht genauso wie Zahlen. Das ist dein Problem. Es ist kein Fehler. Es ist ein Versäumnis, den lexikalischen Vergleich von Strings zu verstehen. – duffymo