【发布时间】:2021-04-13 23:41:59
【问题描述】:
我是 Java 新手,但我正在尝试将 C# 转换为 Java,在这里我遇到了一些关于排序的问题。
由于我在上面执行了 5 次循环来生成结果,所以当我的代码第一次进入这里时,result 将类似于 [5,2,3], [null], [null], [null], [null]。
所以我想将它排序为result = [2,3,5], [null], [null], [null], [null]。但是当我尝试这样做时,我会点击NullPointerException。我猜这是因为我的列表包含空值。
Java 代码:
Arrays.sort(result);
String resultSorting = Arrays.toString(result);
result[j] = String.join(",", resultSorting);
如果 C# 我可以在 lambda 中做:
var resultSorting = result[j].Split(',').OrderBy(x => x).ToList();
result[j] = string.Join(",", resultSorting);
那么如何在 Java 中解决这个问题?
【问题讨论】:
-
您可以使用 Arrays.sort() 和 Comparator 作为第二个参数。编写一个接受空值的比较器,一切都应该没问题。
-
@Ralf Renz,感谢您的评论。我已经尝试过这个解决方案,但排序不起作用,它只接受空值。因为我的列表是
[5,2,3], [null], [null]而不是[2, null, null, 3, 5]。所以这是我不知道该怎么办的问题...... -
好的。但是您不想对数组结果进行排序,而是对结果的元素进行排序。对数组进行循环,并根据每个元素的内容决定是否对其进行排序。
标签: java c# list spring-boot sorting