Java: Equivalent of Python's range(int, int)?

后端 未结 14 1841
北荒
北荒 2020-12-02 08:17

Does Java have an equivalent to Python\'s range(int, int) method?

14条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-02 08:44

    Java 9 - IntStream::iterate

    Since Java 9 you can use IntStream::iterate and you can even customize the step. For example if you want int array :

    public static int[] getInRange(final int min, final int max, final int step) {
        return IntStream.iterate(min, i -> i < max, i -> i + step)
                .toArray();
    }
    

    or List :

    public static List getInRange(final int min, final int max, final int step) {
        return IntStream.iterate(min, i -> i < max, i -> i + step)
                .boxed()
                .collect(Collectors.toList());
    }
    

    And then use it :

    int[] range = getInRange(0, 10, 1);
    

提交回复
热议问题