Java 字符串数组排序

Java 字符串数组排序,java,arrays,string,Java,Arrays,String,这很简单,但我有点困惑 比如说,我们有大小为5的字符串数组。我们做到了 array[0]="ted" array[4]="barney" 所以元素是 {"ted", null, null, null, "barney"} 如果我使用数组.sort,那么新排序数组的新位置是什么 1-) barney, ted, null, null, null 2-) null, null, null, barney, ted 3-) barney, null, null,null, ted 哪一

这很简单,但我有点困惑

比如说,我们有大小为5的
字符串数组
。我们做到了

array[0]="ted"
array[4]="barney"
所以元素是

 {"ted", null, null, null, "barney"}
如果我使用
数组.sort
,那么
新排序数组的新位置是什么

1-) barney, ted, null, null, null  

2-) null, null, null, barney, ted

3-) barney, null, null,null, ted
哪一个?

多谢各位

java.lang.NullPointerException
at java.util.ComparableTimSort.countRunAndMakeAscending(Unknown Source)
at java.util.ComparableTimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)

因为当您遇到此类简单的可测试问题时,String和null彼此不可比较,所以获得答案的最佳方法是在新的空项目上自己运行代码

为了回答您的问题,结果将是NullPointerException,因为null不是可比较的数组{
Arrays.sort(myArray, new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        if (o1 == null && o2 == null) {
            return 0;
        }
        if (o1 == null) {
            return 1;
        }
        if (o2 == null) {
            return -1;
        }
        return o1.compareTo(o2);
    }});
@凌驾 公共整数比较(字符串o1、字符串o2){ 如果(o1==null&&o2==null){ 返回0; } 如果(o1==null){ 返回1; } 如果(o2==null){ 返回-1; } 返回o1。与(o2)相比; }});

这就是如何对其进行排序并获得以下结果:barney、ted、null、null、null。否则将出现空指针异常。

为什么不试试看呢?这很容易由您自己测试。没有?你对为什么这么做感兴趣吗?我投票结束这个问题,因为它可以通过运行给定的代码来回答。