1.使用Arrays类操作可以对数组很方便的进行操作,这里也是为了lambda做一点铺垫
重写比较方法
@Override
public int compareTo(Student o) {
// 约定1:认为左边对象 大于 右边对象 请您返回正整数
// 约定2:认为左边对象 小于 右边对象 请您返回负整数
// 约定3:认为左边对象 等于 右边对象 请您一定返回0
/* if(this.age > o.age){
return 1;
}else if(this.age < o.age){
return -1;
}
return 0;*/
//上面的if语句,也可以简化为下面的一行代码
return this.age - o.age; // 按照年龄升序排列
// return o.age - this.age; // 按照年龄降序排列
}
2.lambda
这是一种减少代码量(匿名内部类代码)的方式
如
Arrays.sort(words, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return Integer.compare(s1.length(), s2.length());
}
});
变成
Arrays.sort(words,(String s1, String s2) ->Integer.compare(s1.length(), s2.length()));
3.方法引用不重要
4.算法不难
5.二分查找注意保持循环条件
(left<=right)
若target<mid,right是移到mid-1的位置