java 给定一个整数数组nums和一个整数target,在nums中查找两个数,使得它们的和等于target。使用带Lambda表达式的foreach语句打印这两个数的索引。
时间: 2024-06-11 07:11:01 浏览: 19
下面是一种实现方式:
```java
import java.util.Arrays;
public class TwoSumWithLambda {
public static void main(String[] args) {
int[] nums = {2, 7, 11, 15};
int target = 9;
twoSum(nums, target);
}
public static void twoSum(int[] nums, int target) {
Arrays.stream(nums).forEach(num -> {
int complement = target - num;
int complementIndex = Arrays.binarySearch(nums, complement);
if (complementIndex >= 0 && complementIndex != Arrays.binarySearch(nums, num)) {
System.out.println(Arrays.asList(Arrays.binarySearch(nums, num), complementIndex));
}
});
}
}
```
在这个实现中,我们使用了Java 8中的Stream和Lambda表达式来遍历数组。对于每个数num,我们计算其补数complement(即target - num),并在nums中查找该补数的索引complementIndex。如果找到了补数且补数不等于num本身,就打印这两个数的索引。需要注意的是,在使用binarySearch查找索引之前,必须保证数组已经有序。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)