|
2 | 2 |
|
3 | 3 | import java.util.Arrays;
|
4 | 4 | import java.util.Random;
|
5 |
| -import java.util.stream.Stream; |
| 5 | +import java.util.concurrent.ThreadLocalRandom |
| 6 | +import java.util.stream.IntStream; |
6 | 7 |
|
7 | 8 | import static java.lang.String.format;
|
8 | 9 |
|
@@ -70,23 +71,24 @@ private <T extends Comparable<T>> int search(T array[], T key, int left, int rig
|
70 | 71 |
|
71 | 72 | // Driver Program
|
72 | 73 | public static void main(String[] args) {
|
73 |
| - |
74 |
| - //just generate data |
75 |
| - Random r = new Random(); |
| 74 | + // Just generate data |
| 75 | + Random random = ThreadLocalRandom.current(); |
| 76 | + |
76 | 77 | int size = 100;
|
77 | 78 | int maxElement = 100000;
|
78 |
| - Integer[] integers = Stream.generate(() -> r.nextInt(maxElement)).limit(size).sorted().toArray(Integer[]::new); |
79 |
| - |
| 79 | + |
| 80 | + int[] integers = IntStream.generate(() -> r.nextInt(maxElement)).limit(size).sorted().toArray(); |
80 | 81 |
|
81 |
| - //the element that should be found |
82 |
| - Integer shouldBeFound = integers[r.nextInt(size - 1)]; |
| 82 | + // The element that should be found |
| 83 | + int shouldBeFound = integers[r.nextInt(size - 1)]; |
83 | 84 |
|
84 | 85 | BinarySearch search = new BinarySearch();
|
85 | 86 | int atIndex = search.find(integers, shouldBeFound);
|
86 | 87 |
|
87 |
| - System.out.println(String.format("Should be found: %d. Found %d at index %d. An array length %d" |
88 |
| - , shouldBeFound, integers[atIndex], atIndex, size)); |
89 |
| - |
| 88 | + System.out.println(format( |
| 89 | + "Should be found: %d. Found %d at index %d. An array length %d", |
| 90 | + shouldBeFound, integers[atIndex], atIndex, size |
| 91 | + )); |
90 | 92 |
|
91 | 93 | int toCheck = Arrays.binarySearch(integers, shouldBeFound);
|
92 | 94 | System.out.println(format("Found by system method at an index: %d. Is equal: %b", toCheck, toCheck == atIndex));
|
|
0 commit comments