【发布时间】:2017-12-20 12:14:28
【问题描述】:
我的 rowId 如下所示
1
1.1
1.2
.
1.9
2
2.1
.
。 3 . . 9
.
9.9
10
10.1
List<MyBean> sortedList = rootItems.stream().sorted(Comparator.comparing(MyBean::getRowId)) .collect(Collectors.toList());
通过使用上面的代码,我得到如下输出。
1
10
11
12
2
2.1
2.2
.
.
但我想要如下输出
1
1.1
1.1.1
1.1.1.1
1.2
1.3
.
.
.
1.9
10
11
.
2
2.1
2.2
2.3
.
.
3
3.1
3.2
.
.
4
.
.
.
9
9.1
9.2
.
.
9.9
10
10.1
。
。
这样它需要继续
如果我想要这样,我需要使用哪个 Set
【问题讨论】:
-
您的问题包含不必要的行,请您删除它们
-
getRowId的返回类型是什么?对我来说好像是String? -
在 sort/comapre 部分解析为数字(double ex.)。
-
将您的字符串解析为数字序列,然后进行比较。字符串逐个字符进行比较,因此
1.1大于10,因为.大于0。或者更改您的 id 以使所有元素具有相同的长度,例如通过前置零。因此1.1可能变成01.01(甚至更多的零)等等。 -
@daniu 是的,rowId的返回类型是String
标签: java collections set