Skip to content

Yet another programming solutions log

Sample bits from programming for the future generations.

Technologies Technologies
  • Algorithms and Data Structures
  • Java Tutorials
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Spock Framework Tutorial
  • Spring Framework
  • Bash Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Developer’s Tools
  • Productivity
  • About
Expand Search Form

Java random integers in range

farenda 2016-11-21 0

In Java random integers in range can be produced in many ways. In this post we show how to generate random numbers using Java 8 features!

Random integers using for loop

List<Integer> forLoopRange(int limit, int from, int to) {
    Random random = new Random();
    int bound = to-from;
    List<Integer> numbers = new ArrayList<>(limit);
    for (int i = 1; i <= limit; i++) {
        numbers.add(random.nextInt(bound)+from);
    }
    return numbers;
}

When can call the above code with sample parameters – forLoopRange(limit, 20, 30):

[25, 25, 21, 26, 21, 20, 28, 28, 25, 29]

Random integers from Random.ints

The shortest and most convenient way to generate random range of integers is to use new in Java 8 method Random.ints() that returns IntStream of random ints:

List<Integer> randomInts(int limit, int from, int to) {
    Random rand = new Random();
    return rand.ints(limit, from, to).boxed().collect(toList());
}

Let’s execute it with sample parameters – randomInts(limit, 10, 20):

[17, 17, 18, 15, 19, 14, 18, 17, 19, 12]

Random numbers with IntStream.generate()

If you would like to provide your source of random numbers you can do so and generate random integers in range with IntStream.generate() like here:

List<Integer> streamRandomRange(int limit, int from, int to) {
    // use your source of entrophy here:
    Random rand = new Random();
    int bound = to - from;
    return IntStream.generate(() -> rand.nextInt(bound)+from)
            .limit(limit)
            .boxed()
            .collect(toList());
}

Sample execution of streamRandomRange(limit, 80, 90):

[82, 80, 85, 88, 89, 87, 85, 88, 82, 83]

References:

  • How to generate range of numbers
  • Check out Java Util Tutorial for more Java 8 cool features!
Share with the World!
Categories Java Tags java, java-util, java8
Previous: Java 8 range of numbers
Next: Maven Spring dependencies

Recent Posts

  • Java 8 Date Time concepts
  • Maven dependency to local JAR
  • Caesar cipher in Java
  • Java casting trick
  • Java 8 flatMap practical example
  • Linked List – remove element
  • Linked List – insert element at position
  • Linked List add element at the end
  • Create Java Streams
  • Floyd Cycle detection in Java

Pages

  • About Farenda
  • Algorithms and Data Structures
  • Bash Tutorial
  • Bean Validation Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Java 8 Streams and Lambda Expressions Tutorial
  • Java Basics Tutorial
  • Java Collections Tutorial
  • Java Concurrency Tutorial
  • Java IO Tutorial
  • Java Tutorials
  • Java Util Tutorial
  • Java XML Tutorial
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Software Developer’s Tools
  • Spock Framework Tutorial
  • Spring Framework

Tags

algorithms bash bean-validation books clojure design-patterns embedmongo exercises git gof gradle groovy hateoas hsqldb i18n java java-basics java-collections java-concurrency java-io java-lang java-time java-util java-xml java8 java8-files junit linux lists log4j logging maven mongodb performance quartz refactoring regex rest slf4j solid spring spring-boot spring-core sql unit-tests

Yet another programming solutions log © 2022

sponsored