【发布时间】:2022-12-01 08:17:41
【问题描述】:
所以这是一个简单的算法问题,
给定一个整数列表,检查此列表中是否有两个数字相加后得到八 (8)。
这是我的解决方案,
import java.util.List; public class Main { static List<Integer> arrayOne = List.of(1,3,6,9); static List<Integer> arrayTwo = List.of(1,6,2,10); static boolean validateArray(int result, List<Integer> array){ for (int i = 0; i<array.size() - 1; i++){ for (int j = i + 1; j < array.size(); j ++){ int value1 = array.get(i); int value2 = array.get(j); if(value1 + value2 == result){ return true; } } } return false; } public static void main(String[] args) { System.out.println(validateArray(8, arrayTwo)); } }这很好用。我想学习的是如何在 Java 8 中重写这段代码。就像 Java 8 中循环的不同选项一样。
【问题讨论】:
-
流对于将一个元素与流的其余部分进行比较并不是很好。有
#max或#sorted之类的边缘情况,但总体而言,与上面的代码相比,使用流执行此操作的解决方案将非常复杂。
标签: arrays java-8 java-stream