Java 检查订单2d数组问题

Java 检查订单2d数组问题,java,arrays,eclipse,sorting,Java,Arrays,Eclipse,Sorting,我有一个XML页面,其中有4列数据。这4列需要排序,首先在第1列,然后在第2列,依此类推。在前两列中有文本,第三列包含3digit数字,最后一列包含double或bigdecimal。我从XML中获取数据,并将其放入2d数组中,以检查排序是否正确。为了测试我编写的检查列顺序的代码,我创建了一个小的2d数组: 字符串[][]xml=新字符串[10][4] 回家后182 5.1 回家后1825.9 回家后1825.10 前150 4.6 犹他州前8523.8 锡安前110.99 锡安前110.100

我有一个XML页面,其中有4列数据。这4列需要排序,首先在第1列,然后在第2列,依此类推。在前两列中有文本,第三列包含3digit数字,最后一列包含double或bigdecimal。我从XML中获取数据,并将其放入2d数组中,以检查排序是否正确。为了测试我编写的检查列顺序的代码,我创建了一个小的2d数组: 字符串[][]xml=新字符串[10][4]

回家后182 5.1

回家后1825.9

回家后1825.10

前150 4.6

犹他州前8523.8

锡安前110.99

锡安前110.100

控件475 65.1

遥控器369 38.6

控制网络电话59844.9

这是我用来检查列顺序的整个代码部分(可以复制粘贴到Eclipse):


我试着用double代替BigDecimal,但是5.10显示为5.1。我认为这就是问题所在,但我不知道如何解决它。我想通过使用。作为分隔符,对两列进行排序,但这会带来一系列问题。

您可以尝试使用POJO而不是2d数组

public class Test implements Comparable<Test> {

private String field1;

private String field2;

private Integer field3;

private Double field4;

@Override
public int compareTo(Test o) {
    // There is your sorting algorythm
    return 0;
}
公共类测试实现了可比较的{
私有字符串字段1;
私有字符串字段2;
私有整数字段3;
私人双字段4;
@凌驾
公共整数比较(测试o){
//这是你的排序算法
返回0;
}
然后在处理测试类列表中的数据后,u只需使用以下命令对所有数据进行排序:

    final List<Test> testList = new ArrayList<Test>();
    Collections.sort(testList);
final List testList=new ArrayList();
Collections.sort(testList);

希望有帮助。

这听起来不假吗“5.9低于5.10,110.99低于110.100”怎么会这样?9比10低,99比100低,不是吗?在这个数字比较中不是这样的:0.9>0.1或0.9>0.10,这是sameI理解的,但我的客户并不认为0.10是0.1,而是一个比0.9高的数字。有没有办法按照客户想要的方式对其进行排序?我意识到这在数字上可能不正确。在这种情况下,y您可能希望将它们作为字符串进行比较,这样您就可以进行词典比较。
public class Test implements Comparable<Test> {

private String field1;

private String field2;

private Integer field3;

private Double field4;

@Override
public int compareTo(Test o) {
    // There is your sorting algorythm
    return 0;
}
    final List<Test> testList = new ArrayList<Test>();
    Collections.sort(testList);