Arrays
package com.Arrays; import java.util.Arrays; import java.util.List; public class Study01 { /** * java.util 需要导入包 主要用来操作数组,排序和搜索 * * 没有构造方法,所有方法都是static修饰 方法: asList(T... a) 返回受数组支持的固定大小的List 查找(以byte为例子): * 注意:使用它查找有一个前提:查找的数组是有序的 binarySearch(byte[] a,byte key) * 在指定数组中查找指定的值,返回下标,使用的是二分查找 binarySearch(byte[] a,int fromIndex,int * toIndex,byte key) 在指定数组的指定下标区间中查找指定元素 复制 copyOf(byte[] a,int newLength) * 复制 * 指定数组的元素得到新数组,新数组的长度是固定的,如果长度比就数组短,截取前部分,如果不够,使用默认值填充 copyOfRange(byte[] * a,int from,int to) 将旧数组在指定下标范围内的元素作为新数组返回 * 填充 * fill(byte[] a,byte val) * 将val填充给a中的每一个元素 * fill(byte[] a,int fromIndex,int toIndex,byte val) * 将val填充给a中的指定元素中 比较: equals()比较数组的值是否相等,重写了Object类的同名方法 表示: toString() * 返回类似[1, 2, 3...]形式的数组所有内容,重写了Object类的同名方法,注意是1.5版本开始 排序: sort(byte[]) * 底层使用的而是快速排序算法 * */ public static void main(String[] args) { Study01 sd=new Study01(); sd.testCopyAndFill(); } public void testAsList(){ List l=Arrays.asList(1,2,3); for(int i=0;i<l.size();i++){ System.out.print(l.get(i)+"\t"); } } public void testSortAndToString(){ int[] ins = { 2, 34, 12, 54, 67, 230 }; System.out.println(Arrays.toString(ins)); Arrays.sort(ins); System.out.println(Arrays.toString(ins)); } public void testBinary(){ int[] ins = { 2, 34, 12, 54, 67, 230 }; //二分查找需要是有序 Arrays.sort(ins); System.out.println(Arrays.toString(ins)); System.out.println(Arrays.binarySearch(ins, 34)); } public void testCopyAndFill(){ int[] ins = { 2, 34, 12, 54, 67, 230 }; int[] ins1=Arrays.copyOf(ins, 4); System.out.println(Arrays.toString(ins1)); ins1=Arrays.copyOf(ins, 6); System.out.println(Arrays.toString(ins1)); Arrays.fill(ins1, 12); System.out.println(Arrays.toString(ins1)); Arrays.fill(ins1, 2,4,30); System.out.println(Arrays.toString(ins1)); } public int binarySearch0(int[] a, int fromIndex, int toIndex, int key) {//二分查找的源码 int low = fromIndex; int high = toIndex - 1; while (low <= high) { int mid = (low + high) >>> 1;//无符号左移1位,相当于/2 int midVal = a[mid]; if (midVal < key) low = mid + 1; else if (midVal > key) high = mid - 1; else return mid; // key found } return -(low + 1); // key not found. } }