打字猴:1.700444754e+09
1700444754
1700444755 high=mid-1;
1700444756
1700444757 else
1700444758
1700444759 //找到元素
1700444760
1700444761 return mid;
1700444762
1700444763 }
1700444764
1700444765 //没有找到,返回负值
1700444766
1700444767 return-(low+1);
1700444768
1700444769 }
1700444770
1700444771 这也没啥说的,就是二分法搜索的Java版实现。注意看加粗字体部分,首先是获得中间索引值,我们的例子中也就是2,那索引值是2的元素值是多少呢?正好是“广州”,于是返回索引值2,正确,没问题。那我们再看看indexOf的实现,代码如下:
1700444772
1700444773 public int indexOf(Object o){
1700444774
1700444775 if(o==null){
1700444776
1700444777 //null元素查找
1700444778
1700444779 for(int i=0;i<size;i++)
1700444780
1700444781 if(elementData[i]==null)
1700444782
1700444783 return i;
1700444784
1700444785 }else{
1700444786
1700444787 //非null元素查找
1700444788
1700444789 for(int i=0;i<size;i++)
1700444790
1700444791 //两个元素是否相等,注意这里是equals方法
1700444792
1700444793 if(o.equals(elementData[i]))
1700444794
1700444795 return i;
1700444796
1700444797 }
1700444798
1700444799 //没找到,返回-1
1700444800
1700444801 return-1;
1700444802
1700444803 }
[ 上一页 ]  [ :1.700444754e+09 ]  [ 下一页 ]