只是记住方法是干什么的,但是对具体方法的理解还是不够
查找方法 当所查找的不存在的时候 返回值应该是 return -(low + 1);
 
一直知道toString 是转换成为字符串  但是具体的方法转换并不是很清楚
其中toStirng方法运用了append 和StringBuilder
 
binarySearch
int[] arr={11,22,55,66,88};
a = arr;
fronIndex = 0;
toIndex = 5;
key = 99;
key = 99;
[11,22,55,66,88];   
private static int binarySearch0(int[] a, int fromIndex, int toIndex, int key) {
        int low = fromIndex; // 0
        int high = toIndex - 1; // 4
        while (low <= high) {  //
            int mid = (low + high) >>> 1; // 2 , 3 ,4
            int midVal = a[mid]; //55 , 66 ,88
            if (midVal < key)
                low = mid + 1;//3 , 4, 5
            else if (midVal > key)
                high = mid - 1;
            else
                return mid; // key found
        }
        return -(low + 1);  // key not found.
    }
   
toString
int[] arr = {1,2,3,4,5};
public static String toString(int[] a) {
//a = arr
        if (a == null)  //判断数组对象是都为空
            return "null";
        int iMax = a.length - 1; //4
        if (iMax == -1)  //这个说明数组存在,但是没有元素
            return "[]";
           
  //StringBuilder的好处:线程不安全,但是效率高
        StringBuilder b = new StringBuilder();
       b.append('['); //  "["
        for (int i = 0; ; i++) {  //判断条件没有写的话,表示这个循环永远为true
            b.append(a[i]); //"[1"  , //"[1, 2"
            if (i == iMax){ //i = 0, imax = 4
                return b.append(']').toString(); "[1, 2, 3, 4, 5]".toString();
            }   
            b.append(", "); //"[1, "   , "[1, 2, "
        }
    }
可能这次写的不太多但是从各种方法的原代码和方法的重写  其实都是可以通过简单的代码一步步实现的
掌握熟练基础才是真正的关键 
 
 
个人观点 

Arrays中toString 和 binarySearch 的原代码的更多相关文章

  1. UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)

    前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...

  2. C#开发中使用Npoi操作excel实例代码

    C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...

  3. 由Java中toString()方法引发的无意识的递归想到的

    先看一段很简单的java代码: toString()/** * @author jeffwong */ public class InfiniteRecursion { public String t ...

  4. C#和Java中执行SQL文件脚本的代码(非常有用)

    原文:C#和Java中执行SQL文件脚本的代码(非常有用) 我们在做程序的时候有事后会涉及到利用sql文件 直接执行,可是在sql文件中有很多注释,我们要一句一句的执行首先必须的得把sql文件解析 去 ...

  5. 记录下项目中常用到的JavaScript/JQuery代码二(大量实例)

    记录下项目中常用到的JavaScript/JQuery代码一(大量实例) 1.input输入框监听变化 <input type="text" style="widt ...

  6. php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)

    php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...

  7. [Java] java.util.Arrays 中使用的 sort 采用的算法 (转)

    http://book.douban.com/annotation/15154366/Q: java.util.Arrays 中使用的 sort 采用的是什么算法?   A: java中Arrays. ...

  8. 2.C#中通过委托Func消除重复代码

    阅读目录   一:重复的代码 二:C#中通过委托Func消除重复代码 一:重复代码    public class Persion { public string Name { get; set; } ...

  9. .NET(C#)中不同级别的安全透明代码对类型的影响

    测试代码将测试一个方法和类默认在全部信任权限下和部分信任权限下的代码类型. 上面说的默认就是指未加入其他安全透明类型的特性. 代码类型可以是: 透明代码(Transparent Code) 关键代码( ...

随机推荐

  1. vue学习 `${HH}-${mm}-${dd}` 按键修饰符

    vue 有一种拼接字符串的规范写法 //键盘 Tab 键 上边的键 英文输入状态 然后采用类似EL表达式${变量}return `${}:${}:${}` //有时候我们经常在输入完密码之后,按回车E ...

  2. Java基础之java8新特性(1)Lambda

    一.接口的默认方法.static方法.default方法. 1.接口的默认方法 在Java8之前,Java中接口里面的默认方法都是public abstract 修饰的抽象方法,抽象方法并没有方法实体 ...

  3. Oracle整合Mybatis实现list数据插入时,存在就更新,不存在就插入以及随机抽取一条记录

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 Oracle整合Mybatis实现list数据插入时,存在就更新,不存在就插入 entity 对应表中字段,如不对应,在xml中起别名 map ...

  4. Aliyun Linux2安装Docker

    安装教程 使用手册

  5. Android实现EditText插入表情、超链接等格式

    参考:https://www.jianshu.com/p/84067ad289d2 参考:https://www.jianshu.com/p/d82ac2edc7e8

  6. 人工智能?.netcore一样胜任!

    提起AI,大家都会先想到Python,确实Python作为一门好几十年的老语言,上一波的AI大流行使它焕发了青春.大家用Phtyon来做AI,最主要的原因无非就是编码量更少,很多数学和AI相关的Api ...

  7. Django学习路10_创建一个新的数据库,指定列名并修改表名

    在 models.py 中添加 from django.db import models # Create your models here. class Person(models.Model): ...

  8. PHP date_sun_info() 函数

    ------------恢复内容开始------------ 实例 返回有关 2013 年 1 月 1 日,纬度 31.7667,经度 35.2333 的日出/日落和黄昏开始/黄昏结束的信息: < ...

  9. Python selenium 三种消息框处理和浏览器(页面跳转)句柄处理

    1. alert: 警告框,只是一个提示信息,只有一个确定按钮,起提示用户的作用: 2.confirm: 确认框,确定和取消按钮会带来不同的结果.点击确定会执行操作,点击取消按钮会取消操作: 3.pr ...

  10. RocketMQ文章

    实战:RocketMQ削峰,这一篇就够了    https://juejin.im/post/5ea159e4f265da47f0794da5