Java 从int转换为整数并排序
我试图将int转换为List Integer,以便应用stream方法对它们进行排序,但是它指出没有合适的方法。有可能这样做吗Java 从int转换为整数并排序,java,arrays,sorting,java-stream,Java,Arrays,Sorting,Java Stream,我试图将int转换为List Integer,以便应用stream方法对它们进行排序,但是它指出没有合适的方法。有可能这样做吗 public class Testsorting { public static int [] prize = {5,2,3,7,1,5,9,0,2}; public static void main(String [] args) { List<Integer> list = Arrays.stream(
public class Testsorting
{
public static int [] prize = {5,2,3,7,1,5,9,0,2};
public static void main(String [] args)
{
List<Integer> list = Arrays.stream(prize).
boxed().collect(Collectors.toList());
System.out.println(list);
List <Integer> sortedList = Arrays.stream(list) //error occured on this line
.sorted()
.collect(Collectors.toList());
}
}
公共类测试排序
{
公共静态int[]奖={5,2,3,7,1,5,9,0,2};
公共静态void main(字符串[]args)
{
List=Arrays.stream(prize)。
boxed().collect(Collectors.toList());
系统输出打印项次(列表);
List sortedList=Arrays.stream(List)//此行出错
.已排序()
.collect(Collectors.toList());
}
}
将数组.stream(列表)
更改为列表.stream()
公共类主{
公共静态int[]奖={5,2,3,7,1,5,9,0,2};
公共静态void main(字符串[]args)
{
List=Arrays.stream(prize)。
boxed().collect(Collectors.toList());
系统输出打印项次(列表);
List sortedList=List.stream()//此行出错
.已排序()
.collect(Collectors.toList());
系统输出打印LN(分类列表);
}
}
将数组.stream(列表)
更改为列表.stream()
公共类主{
公共静态int[]奖={5,2,3,7,1,5,9,0,2};
公共静态void main(字符串[]args)
{
List=Arrays.stream(prize)。
boxed().collect(Collectors.toList());
系统输出打印项次(列表);
List sortedList=List.stream()//此行出错
.已排序()
.collect(Collectors.toList());
系统输出打印LN(分类列表);
}
}
只需在一行中完成以下操作即可
Arrays.stream(prize).sorted().boxed().collect(Collectors.toList());
或
.stream
转换为支持.sorted
方法ootb的IntStream
,但不能将IntStream
直接收集到类似收集器的列表中。toList()
由于流
类中支持这一点,因此我们可以使用.boxed
方法将IntStream
转换为流
,然后您可以直接使用快捷方式收集器。toList
如果您不想通过显式调用boxed
从IntStream转换到流,您可以直接使用
Arrays.stream(prize).sorted().collect(ArrayList::new,ArrayList::add,ArrayList::addAll);
它也会给出同样的结果。只需在一行中完成以下操作即可
Arrays.stream(prize).sorted().boxed().collect(Collectors.toList());
或
.stream
转换为支持.sorted
方法ootb的IntStream
,但不能将IntStream
直接收集到类似收集器的列表中。toList()
由于流
类中支持这一点,因此我们可以使用.boxed
方法将IntStream
转换为流
,然后您可以直接使用快捷方式收集器。toList
如果您不想通过显式调用boxed
从IntStream转换到流,您可以直接使用
Arrays.stream(prize).sorted().collect(ArrayList::new,ArrayList::add,ArrayList::addAll);
它也会给出相同的结果。Java不是Javascript。请努力找出您正在编写代码的语言的名称。使用
list.stream().X
我真的不明白这个问题。有清晰突出问题的体面问题,写这篇评论时得-2分。为什么要绕道<代码>数组。流(奖品)已生成流。因此,您可以执行单个列表sortedList=Arrays.stream(prize).sorted().boxed().collect(Collectors.toList())代码>请注意,在box()
之前执行sorted()
将使按自然顺序排序更有效。只有在需要自定义比较器时,您才需要.boxed().sorted(comparator)
…@Tinki您必须询问投票被否决的人。不幸的是,这是一种常见的模式,选民不会回到a)撤回投票,如果原因不再存在,或b)回应询问原因的评论。我只是猜测了选民的理由,我没有说这是合理的。但最终,这不值得考虑太多。这篇专栏文章在一天结束时仍然得到了好评,编辑的评论也不太苛刻。现在,轮到OP接受解决问题的答案,或者告诉我们仍然缺少什么……Java不是Javascript。请努力找出您正在编写代码的语言的名称。使用list.stream().X
我真的不明白这个问题。有清晰突出问题的体面问题,写这篇评论时得-2分。为什么要绕道<代码>数组。流(奖品)
已生成流。因此,您可以执行单个列表sortedList=Arrays.stream(prize).sorted().boxed().collect(Collectors.toList())代码>请注意,在box()
之前执行sorted()
将使按自然顺序排序更有效。只有在需要自定义比较器时,您才需要.boxed().sorted(comparator)
…@Tinki您必须询问投票被否决的人。不幸的是,这是一种常见的模式,选民不会回到a)撤回投票,如果原因不再存在,或b)回应询问原因的评论。我只是猜测了选民的理由,我没有说这是合理的。但最终,这不值得考虑太多。这篇专栏文章在一天结束时仍然得到了好评,编辑的评论也不太苛刻。现在,轮到OP来接受解决问题的答案,或者告诉我们仍然缺少什么…装箱转换仍然发生在最后一个变体中,它只是被移动到ArrayList::add
函数,该函数需要一个对象参数。所以最后一个变种只是有更长的源代码