05-常用-api-2
1. Arrays
s 结尾的类一般是工具类
api 调用工程师,很多东西不需要自己实现。调用 api 即可。
1.1. Arrays 类的方法
toString() //数组默认打印地址
copyOfRange() // 包前不包后
copyOf(arr,10)
setAll(arr,()->{...}) //
sort()
1.2. Arrays 的排序
对象排序,2 中方法:
- 类实现 Comparable 接口
- 官方规则,如果想升序,满足一下条件即可(例如:
(left,right)-> {return left - right})- 如果左边大于右边,返回正式
- 如果右边大于左边,返回负数
- 如果相等,返回零
- 官方规则,如果想升序,满足一下条件即可(例如:
- 使用 sort 方法,传参数 Comparator 比较器的匿名内部类对象。
2. Lambda 和引用
JDK 8 的新特性。
- 简化函数式接口的匿名内部类写法。
- 只有一个抽象方法的接口是函数式接口。
省略规则:
- 参数类型可以省略。
- 只有一个参数可以省略括号
- 只有一句代码可以省略
return,;,{}
引用(简化 lambda 写法的语法)
(语法:乌龟的屁股,规定)
- 类方法引用,例:
类名::静态方法 - 对象方法引用,例:
对象::实例方法 - 特殊方法引用,例:
String::compareTo - 构造器引用, 例:
类名:new
demo
3. 常见算法
想搞明白算法的思路(解决问题的步骤,过程),再写代码。
3.1. 排序-冒泡排序
思路:
- 每轮找到一个最大值,放到最后面。
- 当前位置和后面的位置依次比较大小,交换顺序。
3.2. 排序-选择排序
思路:
3.3. 查找-二分查找
前提条件:数组必须有序。
4. 正则表达式
- []匹配单个字符
- 里面可用
^
- 里面可用
- () 表示分组一个整体
- 可用
|连接
- 可用
- 普通字符
- 特殊字符
- 转义字符
\, Java 代码中\也是转义字符, 代码中,正则表达式想用转义字符,需要\\。 - 预定义字符
\w和[a-zA-Z_0-9]效果一样。\w不包含汉字
- 修饰字符
- 量词
- {}
?表示数量 0 || 1+表示数量 >=1*表示数量 >=0
(?i)abc 表示忽略大小写。
4.1. 案例
邮箱校验
手机号校验
p = Pattern.compile(str) //封装匹配规则
m = p.mather(data)
// 用m匹配器对象,去爬取内容
while(m.find()){
s=m.group();
}
4.2. 爬取内容
m.group () 默认是 m.group (0) 意思是整体
- 分组爬取
(\\w{2,30}) m.group(1) // 要第一组括号的内容 - 贪婪爬取
欢迎(.+)光临 - 非贪婪爬取
欢迎(.+?)光临
4.3. 搜索替换分割
demo...