java数组,获取数组中某个元素的索引——通过java.util.Arrays的方法

使用二分法查找数组中某一项值所在索引位置。 

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
	}

 

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值