java获取数组的元素_java数组,获取数组中某个元素的索引——通过java.util.Arrays的方法...
使用二分法查找数组中某一项值所在索引位置。Arrays.binarySearch(Object[] a,Object key);Arrays.binarySearch(Object[] a, fromIndex, toIndex,Object key);1、从整个数组中查询指定值的索引:Arrays.binarySearch(被查数组,查询值);2、从指定索引之间查询指定值的索引:Arrays.b
使用二分法查找数组中某一项值所在索引位置。
Arrays.binarySearch(Object[] a,Object key);
Arrays.binarySearch(Object[] a, fromIndex, toIndex,Object key);
1、从整个数组中查询指定值的索引:Arrays.binarySearch(被查数组,查询值);
2、从指定索引之间查询指定值的索引:Arrays.binarySearch(被查数组,开始索引,结束索引,查询值);
指定索引时,查询的范围包含“开始索引”的值,不包含“结束索引”的值。
注意:
1、查找之前必须先对数组进行排序。可以使用java.util.Arrays类提供的:
Arrays.parallelSort(a)或者 Arrays.sort(a)代表正序排序。(查看如何排序)
2、Arrays.binarySearch(被查数组,查询值); 查询内容的索引范围是整个数组,索引:0 ~数组.length-1。
Arrays.binarySearch(被查数组,开始索引,结束索引,查询值);查询内容的索引范围是:开始索引~结束索引-1 。
3、如果查询值在数组中有重复值,则查询结果显示前边的值的所在索引位置。
提示:比如数组有俩个2,返回排序后前边那个2索引位置。
4、如果所查的数组有要查询的值,则返回该内容排序后新的索引位置,若未找到返回负数。
示例:
@Test
public void test3(){
Integer[] arr = {-1,-2,1,2,2,9,8,7,-3,0};
/**先排序,Arrays.parallelSort(a) 或者 Arrays.sort(a) 代表正序排序。*/
//Arrays.parallelSort(arr);
Arrays.sort(arr);
//例1、查询数组arr,2 排序后(正序)所在的索引位置。
int search = Arrays.binarySearch(arr,2);
//例2、查询数组arr,5 排序后(正序)所在的索引位置。注意:5 在该数组中是不存在的。
int search2 = Arrays.binarySearch(arr,5);
//例3、从指定索引位置查询,从索引2-6之间查询内容 2 。注意:2的索引值<=查询索引值<6的索引值
int search3 = Arrays.binarySearch(arr,2,6,2);
System.out.println("正序:"+Arrays.toString(arr));//打印数组,正序:[-3, -2, -1, 0, 1, 2, 2, 7, 8, 9]
System.out.println("排序后的索引位置:"+search);//查询2,排序后的索引位置:5
System.out.println("排序后的索引位置:"+search2);//查询5,排序后的索引位置:-8,注意:当在数组中未找到要查找的内容 返回负数。
System.out.println("排序后的索引位置:"+search3);//查询2,排序后的索引位置:5
}
更多推荐
所有评论(0)