java lambda foreach 带下标
时间: 2023-07-09 09:31:26 浏览: 98
在 Java 8 中,可以使用 IntStream.range() 方法生成一个下标范围,然后使用 forEach() 方法遍历集合,并使用下标访问集合元素。下面是一个示例代码:
```
List<String> list = Arrays.asList("apple", "banana", "orange");
IntStream.range(0, list.size())
.forEach(i -> System.out.println(i + ": " + list.get(i)));
```
输出结果为:
```
0: apple
1: banana
2: orange
```
在上面的代码中,使用 IntStream.range() 方法生成了一个从 0 到 list.size() - 1 的整数范围,然后使用 forEach() 方法遍历这个整数范围,并在 lambda 表达式中访问集合元素和下标。
相关问题
java增强for循环获取下标
Java中的增强for循环是一种简化数组或集合遍历的语法结构,不支持直接获取下标。如果需要在遍历中获取下标,需要用传统的for循环的形式来实现。
例如,假设要遍历一个整型数组arr并输出每个元素及其下标,可以使用如下传统的for循环:
```
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]=" + arr[i]);
}
```
如果使用增强for循环,则无法直接获取下标:
```
int[] arr = {1, 2, 3, 4, 5};
for (int num : arr) {
//无法直接获取下标
}
```
在增强for循环中,每个元素都被赋值给了循环中声明的变量num,而不是使用下标来访问每个元素。
如果需要在增强for循环中获取下标,可以使用Java8中引入的IntStream.range()方法来生成一个指定范围的整数流,并在流中遍历获取下标,示例如下:
```
int[] arr = {1, 2, 3, 4, 5};
IntStream.range(0, arr.length).forEach(i -> {
int num = arr[i];
System.out.println("arr[" + i + "]=" + num);
});
```
其中,IntStream.range()方法生成的整数流从0到arr.length-1,也就是元素的下标范围。在流中遍历时,通过lambda表达式中传递的下标变量i来访问数组中对应下标的元素。
java 数组表达式_Java Array数组 遍历 四种方式(包含 Lambda 表达式遍历)
Java中的数组是一种特殊的对象,它可以存储固定大小的同类型元素集合。在访问数组元素时,我们需要使用数组下标来定位元素。下面介绍四种遍历Java数组的方式。
1. 使用for循环遍历数组
```java
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
```
2. 使用增强for循环遍历数组
```java
int[] arr = {1, 2, 3, 4, 5};
for (int num : arr) {
System.out.println(num);
}
```
3. 使用Arrays类的toString()方法输出数组内容
```java
int[] arr = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(arr));
```
4. 使用Lambda表达式遍历数组
```java
int[] arr = {1, 2, 3, 4, 5};
Arrays.stream(arr).forEach(System.out::println);
```
以上四种方式都可以用于遍历Java数组,选择哪种方式取决于具体情况和个人喜好。其中,增强for循环和Lambda表达式遍历方式比较简洁和方便,但是在一些特殊情况下可能会有性能问题。而使用for循环遍历数组和使用Arrays类的toString()方法输出数组内容则比较通用。
阅读全文