复习:
1.Java中对象得到比较相关的三种方法
Object.equals | 相等还是不相等 |
Comparable.compareTo | 比较(内部比较,自然顺序) |
Comparator.compare | 比较(外部比较,基于比较器) |
2.如何定义一个泛型类
3.使用泛型:通配符,谁是谁的子类
新课:
1.搜索
1.1搜索中的模型
(1)纯Key模型:复杂度较小
(2)Key-Value模型:复杂度较大
2.Map的使用
1. Map中的Key不允许重复
2.Map可以直接打印,内部覆写了toString 方法
Ieratable(迭代器)
迭代器 —— Collection 接口
Map 接口—— 集合
3.元素类型
1.泛型 <两个类型变量>
Map.Entry<Integer,Integer> // <K的类型,V的类型>
2.静态内部类 Map.Entry
public class Map{
public static calss Entry{
}
}
//在外部使用静态内部类的语法:Map.Entry
4.练习题
1.找非空数组中只出现一次的数字
思路:数字和数字出现次数之间的映射关系
2.Random 链表复制
分析:(1)普通复制不可以,因为没法处理random指向自己的结点
(2)无法在复制结点的同时处理random,需要先复制结点,再处理random
3.输入字母,只打印出大写字母且有序
5.遍历字符串
char[] a =J.toCharArray();
for(char ch: J.toCharArary()){
}
6.得到字符串 Scanner
Scanner scanner = new Scanner(System.in);
String expected = scanner.nextLine();
String actual = scanner.nextLine();
//不区分大小写,统一将字符串转换为大写
char[] a = expected.toUpperCase().toCharArray();
//记录打印出的键
Set<Character> brokenKeys = new HashSet<>();