倒计时6天准备
算法题
剑指offer系列
- 链表中倒数K个节点
- 合并两个有序链表
- 树的子结构
- 对称的二叉树
- 二叉树的镜像
- 顺时针打印矩阵
- 包含min的栈
- 从上到下打印二叉树 Ⅰ Ⅱ Ⅲ
- 后序遍历
Java SE
- 如何理解泛型
List<String> strList = new ArrayList<>(); List<Object> objList = new ArrayList<>(); objList.add("公众号:Coder小黑"); // 代码1 objList = strList; // 不能传递,因为Object限制 public static void printCollection1(Collection c) {} public static void printCollection2(Collection<Object> c) {} 但是Collection<String>并不是Collection<Object>的子类,和代码2有异曲同工之妙。 public static void printCollection3(Collection<?> c) {} List<?> c = Lists.newArrayList(new Object()); Object o = c.get(0); c.add("12"); // 编译错误
## 有界通配符 // 只知道这个泛型的类型是Person的子类,具体是哪一个不知道 public static void method1(List<? extends Person> c) {} // 只知道这个泛型的类型是Teacher的父类,具体是哪一个不知道 public static void method2(List<? super Teacher> c) {} ## 类型擦除 泛型擦除遵循以下规则: 如果泛型参数无界,则编译器会将其替换为Object。 如果泛型参数有界,则编译器会将其替换为边界类型。 2. 如何用VUE写一个页面