对字符串列表进行排序时,Java Collections.sort返回null

对字符串列表进行排序时,Java Collections.sort返回null,java,list,sorting,collections,Java,List,Sorting,Collections,我试图通过集合对字符串列表(包含字母数字字符和标点符号)进行排序。排序: public class SorterDriver { public static void main(String[] args) { List<String> toSort = new ArrayList<String>(); toSort.add("fizzbuzz"); System.out.println("toSort size

我试图通过
集合对字符串列表(包含字母数字字符和标点符号)进行排序。排序

public class SorterDriver {
    public static void main(String[] args) {
        List<String> toSort = new ArrayList<String>();

        toSort.add("fizzbuzz");
        System.out.println("toSort size is " + toSort.size());

        List<String> sorted = Collections.sort(toSort);
        if(sorted == null) {
            System.out.println("I am null and sad.");
        } else {
            System.out.println("I am not null.");
        }
    }
}
为什么为空?

返回一个
无效值
,因此您的新集合
排序
永远不会初始化

List<String> sorted = Collections.sort(toSort);
就你而言:

public class SorterDriver {
    public static void main(String[] args) {
        List<String> toSort = new ArrayList<String>();

        toSort.add("fizzbuzz");
        System.out.println("toSort size is " + toSort.size());

        Collections.sort(toSort);
        if(toSort == null) {
            System.out.println("I am null and sad.");
        } else {
            System.out.println("I am not null.");
        }
    }
}
public class-SorterDriver{
公共静态void main(字符串[]args){
List-toSort=new-ArrayList();
toSort.添加(“fizzbuzz”);
System.out.println(“toSort大小为”+toSort.size());
Collections.sort(toSort);
if(toSort==null){
System.out.println(“我是空的和悲伤的。”);
}否则{
System.out.println(“我不是空的”);
}
}
}

您确定代码可以编译吗
Collections.sort()
的返回类型为
void
Collections.sort()
的返回类型为
void
。它修改传递的
列表
。是的@Thomas-我的实际代码是Groovy,但我将其转换为Java以加快问题的回答。Groovy的动态特性似乎掩盖了Java会立即暴露为编译器错误的内容。
List<String> sorted = null;
Collections.sort(toSort);    
//                 ^------------> toSort is being sorted!
Collections.sort(collectionToBeSorted);
public class SorterDriver {
    public static void main(String[] args) {
        List<String> toSort = new ArrayList<String>();

        toSort.add("fizzbuzz");
        System.out.println("toSort size is " + toSort.size());

        Collections.sort(toSort);
        if(toSort == null) {
            System.out.println("I am null and sad.");
        } else {
            System.out.println("I am not null.");
        }
    }
}