OnJava8-Examples/arrays/ArraySearching.java

37 lines
1.1 KiB
Java
Raw Normal View History

2015-09-07 11:44:36 -06:00
// arrays/ArraySearching.java
2015-11-14 16:18:05 -08:00
// <20>2016 MindView LLC: see Copyright.txt
2015-11-15 15:51:35 -08:00
// We make no guarantees that this code is fit for any purpose.
// Visit http://mindviewinc.com/Books/OnJava/ for more book information.
2015-06-15 17:47:35 -07:00
// Using Arrays.binarySearch().
import java.util.*;
2015-11-03 12:00:44 -08:00
import java.util.function.*;
import onjava.*;
2015-06-15 17:47:35 -07:00
public class ArraySearching {
public static void main(String[] args) {
2015-11-03 12:00:44 -08:00
Supplier<Integer> gen =
new RandomSupplier.Integer(1000);
2015-06-15 17:47:35 -07:00
int[] a = ConvertTo.primitive(
Generated.array(new Integer[25], gen));
Arrays.sort(a);
2015-12-02 09:20:27 -08:00
System.out.println(
"Sorted array: " + Arrays.toString(a));
2015-06-15 17:47:35 -07:00
while(true) {
2015-11-03 12:00:44 -08:00
int r = gen.get();
2015-06-15 17:47:35 -07:00
int location = Arrays.binarySearch(a, r);
if(location >= 0) {
2015-12-02 09:20:27 -08:00
System.out.println(
"Location of " + r + " is " + location +
2015-06-15 17:47:35 -07:00
", a[" + location + "] = " + a[location]);
break; // Out of while loop
}
}
}
2015-09-07 11:44:36 -06:00
}
/* Output:
2015-06-15 17:47:35 -07:00
Sorted array: [128, 140, 200, 207, 258, 258, 278, 288, 322,
429, 511, 520, 522, 551, 555, 589, 693, 704, 809, 861, 861,
868, 916, 961, 998]
Location of 322 is 8, a[8] = 322
2015-09-07 11:44:36 -06:00
*/