Java: эквивалент диапазона Python (int, int)?

Является ли Java эквивалентом метода Python range(int, int) ?

  • Как очистить таблицы в тысячах PDF-файлов?
  • Как использовать winapi SetWinEventHook в python?
  • Как создать заявку на покупку акций в python
  • Числа Фибоначчи, с одним слоем в Python 3?
  • Как получить объект запроса в django post_save прослушиватель
  • Ошибка Pyodbc Имя источника данных не найдено, а драйвер по умолчанию не указан парадокс
  • Установка h5py на OS X
  • PyQt4 на Mavericks с питоном 3
  • 10 Solutions collect form web for “Java: эквивалент диапазона Python (int, int)?”

    Guava также предлагает нечто похожее на range Python:

     Range.closed(1, 5).asSet(DiscreteDomains.integers()); 

    Вы также можете реализовать довольно простой итератор, чтобы делать то же самое с помощью AbstractAterator от Guava:

     return new AbstractIterator<Integer>() { int next = getStart(); @Override protected Integer computeNext() { if (isBeyondEnd(next)) { return endOfData(); } Integer result = next; next = next + getStep(); return result; } }; 

    Старый вопрос, новый ответ (для Java 8)

      IntStream.range(0, 10).forEach( n -> { System.out.println(n); } ); 

    или со ссылками на методы:

     IntStream.range(0, 10).forEach(System.out::println); 

    Поскольку Guava 15.0, Range.asSet () устарел и планируется удалить в версии 16. Вместо этого используйте следующее:

     ContiguousSet.create(Range.closed(1, 5), DiscreteDomain.integers()); 
     public int[] range(int start, int stop) { int[] result = new int[stop-start]; for(int i=0;i<stop-start;i++) result[i] = start+i; return result; } 

    Простите любые ошибки синтаксиса или стиля; Я обычно программирую на C #.

    Я работаю над небольшой библиотекой Java utils под названием Jools и содержит класс Range который предоставляет необходимые вам функциональные возможности (есть загружаемый JAR).
    Конструкторы – это Range(int stop) , Range(int start, int stop) или Range(int start, int stop, int step) (аналогичный циклу for), и вы можете либо перебирать его, используя ленивую оценку, или вы можете использовать его toList() чтобы явно получить список диапазонов.

     for (int i : new Range(10)) {...} // i = 0,1,2,3,4,5,6,7,8,9 for (int i : new Range(4,10)) {...} // i = 4,5,6,7,8,9 for (int i : new Range(0,10,2)) {...} // i = 0,2,4,6,8 Range range = new Range(0,10,2); range.toList(); // [0,2,4,6,8] 
     public int[] range(int start, int length) { int[] range = new int[length - start + 1]; for (int i = start; i <= length; i++) { range[i - start] = i; } return range; } 

    (Длинный ответ, просто сказать «Нет»)

    Вы можете использовать следующий фрагмент кода, чтобы получить набор целых чисел:

      Set<Integer> iset = IntStream.rangeClosed(1, 5).boxed().collect (Collectors.toSet()); 

    Класс превосходного диапазона Groovy можно использовать с Java, хотя он, конечно, не такой отличный.

    Библиотека «Functional Java» позволяет программировать таким образом в ограниченной степени, она имеет метод range (), создавая экземпляр fj.data.Array.

    Видеть:

    Аналогично, библиотека «Полностью Lazy» предлагает метод ленивого диапазона: http://code.google.com/p/totallylazy/

    Если вы хотите использовать его так же, как в цикле Python, Java отлично сочетается с инструкцией for, что делает эту структуру ненужной для этой цели.

    Python - лучший язык программирования в мире.