【发布时间】:2017-12-21 07:59:17
【问题描述】:
我正在寻找一种优雅的方式来表达这个伪代码。对于我的分配,我无法更改方法签名或参数类型。
private static int smallest(int... nums)
{
return Arrays.stream(nums).min().getAsInt();
}
我要做的就是从方法调用中获取一个巨大的可变 ints 列表作为参数,并返回所有 中最小的 int int 参数。我试图用谷歌搜索并阅读 API 以了解如何正确实现这一点,但我只做到了这一点。有人可以帮我在语法上更正它以正确编译和输出吗?
我无法正确发布带有格式的控制台错误,因此我将其发布为对我的 OP 的更新。为了回答@Marvin,我的编译器出现了这个错误......
Methods1.java:25: error: cannot find symbol
int small = Arrays.stream(nums).min().getAsInt();
^
symbol: variable Arrays
location: class Methods1
1 error
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误和必要的最短代码 重现它在问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。
-
如果我们第一眼看到编译器错误中的代码与您发布的不一样,我们应该怎么想?它只是
min(),就像您发布的那样,而不是min(Integer::min),就像您传递给编译器一样。除此之外,你知道你必须import java.util.Arrays;,不是吗? -
marvin @Holger 谢谢你们两个,在你们两个之间我能够弄清楚。我需要添加 .getAsInt() 并导入我的数组类。该死的,数小时试图弄清楚它为什么不起作用,而我一直忘记导入我的怪异数组类。十分感谢大家。使用那一行代码,我现在可以执行 Karkan 下面演示的操作。漂亮!
-
我的意思是,该错误确实可以准确地告诉您问题所在,如果您使用的是 IDE,它应该会提示您导入...
-
是的,哈哈,当我阅读上面的@Holger 评论时,我就像....该死的,不敢相信我忘记了这一点。我正在使用一个非常基本的 IDE,jGrasp。如果我当时使用的是 intelliJ,它可能会警告我。
标签: java arrays parameters java-stream min