我正在尝试解决我正在学习的课程的练习。我需要创建一个函数来创建一个输入数组并返回最小值和最大值。这是我的简单代码(非常基本):static String createVect(){ Scanner input = new Scanner(System.in); System.out.print("Number of elements: "); int n = input.nextInt(); int vector[] = new int[n]; for (int i = 0; i < n; i++) { System.out.print("Valor " + (i+1) + ": "); vector[i] = input.nextInt(); } int min = Arrays.stream(vector).min().getAsInt(); int max = Arrays.stream(vector).max().getAsInt(); System.out.println("Min: " + min); System.out.println("Max: " + max); return Arrays.toString(vector); }public static void main(String[] args){ System.out.println(createVect()); }它工作正常,但我想用返回值替换 System.out.print,但我不确定是否应该封装它们或为最小值和最大值创建其他函数。谢谢您的帮助。
3 回答
江户川乱折腾
TA贡献1851条经验 获得超5个赞
您可能对该summaryStatistics()方法感兴趣。您的方法可以返回一个实例IntSummaryStatistics来携带最小值和最大值(以及其他信息)。至少,您可以使用该方法来避免对数组进行多次传递:
IntSummaryStatistics stats = IntStream.of(vector).summaryStatistics();
System.out.printf("Min: %d%n", stats.getMinimum());
System.out.printf("Max: %d%n", stats.getMaximum());
对于私有实现,以这种方式使用数组既快速又简单。但是对于公共 API 来说,这对客户端来说很不方便且容易出错,并且会引入维护陷阱。
添加回答
举报
0/150
提交
取消