二分查找示意图
Arrays.sort(arr);//Java系统自带的排序方法
Arrays.binarySearch(arr, 6);//Java系统自带的查找方法,(数组名,查找的数据)返回额是int类型
//字符串类型比较
String r1=“a”;
String r2=“f”;
System.out.println(r1.compareTo(r2));//s1.compareTo(s2)含义:字符串s1和字符串s2比较大小
//double类型比较
double n1=8.9;
double n2=9.8;
//System.out.println((int)(n1-n2));//结果为0,强转不行
System.out.println(((Double)n1).compareTo((Double)n2));//(Double)n1)
//创建的student对象比较其中的一个(有工具类和接口实现)
Student s1=new Student(“apple”, 25, 150.5);
Student s2=new Student(“banana”, 19, 1110.5);
System.out.println(s1.compareTo(s2));//s1.compareTo(s2)是:s1字符串和s2字符串比较
内部比较器:引入public int compareTo(Object o) {}在其Student(规则)内部。顾名内部比较器
外部比较器:所有的规则全部写在Student(规则)类的外部
Main方法
1 方法特殊:程序的入口—格式必须固定
2 可否有重载的main方法:可
3 public :权限修饰符 整个项目中
Static :静态的 先于对象存在
Void :返回值类型为空
Main :方法名
String[] args :String类型的数组
可变参数:
可变参数:int…arr --------JDK1.5版本之后才有的
可变参数在逻辑上的处理跟数组一样!
可以解决某些方法重载的问题。
定义可变参数之后,你可以传入的实参:0,1,2~n
可变参数,与其它参数并列的时候,可变参数必须放在最后。
Arrays工具类
StringBuilder sb=new StringBuilder();//StringBuilder可拼接任何字符串
sb.append("[");
for(int a:arr) {
sb.append(a+",");//结果多一个逗号(,)
}
sb.setCharAt(sb.length()-1, ‘]’);//.setCharAt替换字符串中的一个字符。
//前一个是要被替换的位置(当前例题中的arr.length-1),替换上的字符是后一个(当前例题中的]),字符用单引号
System.out.println(sb);
Arrays.sort(arr);//对arr数组排序
System.out.println(Arrays.binarySearch(arr, 5));//Arrays.binarySearch(arr, 5):查找arr数组中字符是5的下标
int[] arr2=Arrays.copyOf(arr, 2);//Arrays.copyOf(arr, 2):从原来arr数组复制2个到新数组arr2
int[] arr3=Arrays.copyOfRange(arr, 2, 4);//Arrays.copyOfRange(arr, 2, 4):arr数组从下标2开始取到4结束,范围[2,4)
Arrays.fill(arr, 100);//Arrays.fill(arr, 100):对arr数组进行100填充,结果是arr数组全是100
Arrays.fill(arr, 2, 4, 99);//Arrays.fill(arr, 2, 4, 99):arr数组从下标2开始取到4结束,范围[2,4)对arr数组选中区间填充99
System.arraycopy(arr4, 1, arr5, 1, 3);
/**
* System.arraycopy(src, srcPos, dest, destPos, length);
* src——源数组
* srcPos——源数组中的起始位置。
* dest——目标数组
* destPos——目标数据中的起始位置
* length——要复制的数组元素的数量
*/
//自己完成数组复制:
int[] arr6= {1,2,3,4};
int[] arr7=new int[6];
for (int i = 0; i <= arr6.length-1; i++) {
arr7[i] = arr6[i];
}