要根据条件获取索引数,可以使用Java的Stream API来实现。

首先,将List转换为Stream

List<Long> list = new ArrayList<>();
// 添加元素到list

Stream<Long> stream = list.stream();

然后,使用filter方法根据条件过滤元素,再使用mapToInt方法将元素转换为索引数:

int[] indexes = stream
    .filter(condition) // 根据条件过滤元素
    .mapToInt(list::indexOf) // 将元素转换为索引数
    .toArray(); // 将结果转换为数组

这样,我们就可以得到满足条件的元素的索引数数组indexes。

完整的示例代码如下:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        List<Long> list = new ArrayList<>();
        list.add(1L);
        list.add(2L);
        list.add(3L);
        list.add(4L);
        list.add(5L);

        Stream<Long> stream = list.stream();

        int[] indexes = stream
                .filter(n -> n > 2) // 根据条件过滤元素
                .mapToInt(list::indexOf) // 将元素转换为索引数
                .toArray(); // 将结果转换为数组

        for (int index : indexes) {
            System.out.println(index);
        }
    }
}

输出结果为:

2
3
4

原文地址: https://www.cveoy.top/t/topic/p8nB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录