私はnumb
という配列を持っています。 5つの数字(ユーザーの入力から)が入っています。入力値の例は、5,29,101,100,89.4です。私はこの配列の要素をts
というTreeSet
というforループを使って転送します(要素を降順で並べます)。この後、私はこのTreeSet
の要素をMessageDialog
を使って表示します。しかし、ディスプレイは私が期待しているものとは違ったものを示しています。 [89.4,5,29,101,100]
と表示されます。TreeSetの順序付けエラー
同じ場所の値で数字を入れた場合(たとえば、配列に12,5,6,84,74,65のような数字だけが含まれている場合)、数十、数百といったように、予想どおりに注文します。私は何が間違っているのか分からない。ここで
はコードです:
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);
}
}
文字列と数字のソート順が同じではありません。 – Perception
文字列は数字と同じ方法でソートされません。それはあなたの問題だ。これはバグではありません。それは文字列の字句比較を理解することができません。 – duffymo