Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在一行中初始化已排序数组,而不是创建数组然后对其排序_Java_Arrays_Sorting - Fatal编程技术网

Java 如何在一行中初始化已排序数组,而不是创建数组然后对其排序

Java 如何在一行中初始化已排序数组,而不是创建数组然后对其排序,java,arrays,sorting,Java,Arrays,Sorting,在Java中,我有一个名为Pin的对象数组,我希望对其进行排序。目前,需要三行代码才能返回如下所示的已排序地图对象数组: Pin[] plist = PinList.values().toArray(new Pin[PinList.size()]); Arrays.sort(plist,Pin.PinComp);//This is done to sort the pins return plist; 在这里,它将所有管脚抓取到一个管脚数组中,对数组进行排序,然后返回排序后的数组。我希望将其压

在Java中,我有一个名为
Pin
的对象数组,我希望对其进行排序。目前,需要三行代码才能返回如下所示的已排序地图对象数组:

Pin[] plist = PinList.values().toArray(new Pin[PinList.size()]);
Arrays.sort(plist,Pin.PinComp);//This is done to sort the pins
return plist;
在这里,它将所有管脚抓取到一个管脚数组中,对数组进行排序,然后返回排序后的数组。我希望将其压缩为一条代码语句,这样我就可以
在一行中返回一个已排序的新管脚数组

是否可以创建一个已排序的数组,而不是创建一个数组然后对其进行排序

您可以使用流:

return PinList.values()
        .stream()
        .sorted(Pin.PinComp)
        .toArray(Pin[]::new);

你到底为什么要这么努力地把代码塞进一行?您所做的似乎合乎逻辑且可读。“是否可以创建一个已排序的数组,而不是创建一个数组然后对其进行排序?”不可以。即使是服务器也会先在内部创建一个数组,然后对其进行排序。您可能没有显式地执行它,但它仍然会发生。“我希望将其压缩为一行代码”,然后将这3条语句放在同一行上。我不建议这样做,但它会起作用。我只是觉得奇怪的是,您必须使用void方法来更改数组本身,而不是应用命令对数组进行排序。为了他的利益,您可以将它们放在同一行;)