常见对象_Arrays工具类的源码解析
来源:互联网 发布:恢复中国国籍 知乎 编辑:程序博客网 时间:2024/04/30 09:26
工具类有的尽量用工具类中的方法 public static String toString(int[] a)public static void sort(int[] a) 底层是快速排序,知道就可以了。有人就百度看。public static int binarySearch(int[] a,int key)开发原则只要是对象,我们就要判断该对象是否为null。int[] arr = { 24, 69, 80, 57, 13 };System.out.println("排序前:" + Arrays.toString(arr)); public static String toString(int[] a) { // a -- arr -- { 24, 69, 80, 57, 13 } if (a == null) return "null";//说明数组对象不存在int iMax = a.length - 1;//iMax = 4;if (iMax == -1) return "[]";//说明数组存在,但是没有元素。 StringBuilder b = new StringBuilder(); b.append('[');//"[" for (int i = 0; ; i++) { b.append(a[i]);//"[24, 69, 80, 57, 13" if (i == iMax) //"[24, 69, 80, 57, 13]"return b.append(']').toString(); b.append(", ");//"[24, 69, 80, 57" } }-------------------------------------------------------int[] arr = {13, 24, 57, 69, 80}System.out.println("binarySearch:" + Arrays.binarySearch(arr, 699)); //a -- arr -- {13, 24, 57, 69, 8} //key -- 577 public static int binarySearch(int[] a, int key) {return binarySearch0(a, 0, a.length, key); }private static int binarySearch0(int[] a, int fromIndex, int toIndex, int key) {//a -- arr -- {13, 24, 57, 69, 8}//fromIndex -- 0//toIndex -- 5//key -- 577 int low = fromIndex;//low = 0int high = toIndex - 1;//high = 4while (low <= high) { int mid = (low + high) >>> 1;//mid = 2 (无符号右移!左边填充0!4>>>1=2),mid = 3,mid = 4 int midVal = a[mid];//midVal = 57,minVal = 69,minVal = 80 if (midVal < key)low = mid + 1;//low = 3,low = 4,low = 5, else if (midVal > key)high = mid - 1; elsereturn mid; // key found}return -(low + 1); // key not found. }
0 0
- 常见对象_Arrays工具类的源码解析
- 常见对象_Arrays工具类的概述和使用
- Java_集合_Arrays工具类
- 集合框架_Arrays工具类的asList()方法的使用
- 常见对象_String类的compareTo()方法的源码解析
- 常见对象-String类的compareTo()方法的源码解析
- 【我的Java笔记】常用类_Arrays
- 常见对象-Arrays工具类
- Gson 常见json对象的解析
- 【Java常用类库】_Arrays笔记
- 【Java常用类库】_Arrays笔记
- 【Java常用类库】_Arrays笔记
- jquery源码解析----对象的创建
- Android 源码解析-LruCache 缓存工具类
- siege工具源码解析
- Android解析XML到对象工具类
- php源码解析:对象
- Interger对象源码解析
- Linux之pinctrl subsystem
- Java中socket编程
- weex语法概述
- day05-sql的注入与防止
- 常用qt快捷键及其更改
- 常见对象_Arrays工具类的源码解析
- 哈理工第六届程序设计大赛 I 旅行 (最短路)
- 接触树莓派一(搭建使用环境)
- 昨天的tomcat报错的问题
- Longest Palindromic Substring
- file was loaded in the wrong encoding
- Fully-Convolutional Siamese Networks for Object Tracking
- 2015.7.26-8.1,成都到西安
- 实施微服务,我们需要哪些基础框架?