|
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