1.java中对象的比较相关的三个方法 Object.equals 相等还是不相等 Comparable.compareTo 比较(内部比较,自然顺序) Comparator.compare 比较(外部比较,基于比较器) 2.如何定义一个泛型类 了解在定义时,出现在尖括号里的 ,是类型变量,并且定义时是形参 <E extends 接口/类> 对传入类型变量做约束,必须是该接口或者类的子类
泛型:作用在编译期间的 一种机制 运行期间:没有泛型的概念,背后的原理是类型擦除 3.使用泛型:通配符,谁是谁的子类的问题
SortedMap-->(继承于)Map
Map.Entry<Integer,Integer> Map.Entry就是一个元素类型 1.静态内部类 Map.Entry Entry就是一个类型,只不过挂在Map下,它是一个静态内部类 静态内部类在外部使用的方式就是Map.Entry 2.尖括号里的就是泛型 <两个类型变量> <K的类型,V的类型> <Integer,Integer> 这个静态内部类是一个泛型类
Map的k不能重复,v可以重复,建立K与V之间的映射关系 map.get(i);获取该处元素
打印map.get(j); j处没有被定义,会打印null
get(k); 返回K对应的V值、
getOrDefault(k,v) 返回K对应的V值,K不存在,返回默认值 put(k,v); 设置K对应的V remove(k);删除K对应的映射关系
map.entrySet(); 返回的是一个Set<Map.Entry<Integer,Integer>> 不重复的键值对
set.add(...);添加 set.contains(...),是否包含这个元素
以下都是接口 Map Collection SortedMap(保证输出顺序) List Set Queue Deque 下面是实现类 SortedSet(保证输出顺序) ArrayList LinkedList LinkedList LinkedList
复制带有随机指针的链表 1.普通复制不可以,因为没法处理random指向自己的结点 2.无法在复制结点的同时处理random,需要先复制结点,再处理random 3再拆分链表