1.数据结构
线性表 list
栈和队列 Queue/Stack/Deque
二叉树
堆 PriorityQueue
排序 Arroys.sort |List.sort
搜索 Set/Map
搜索树
哈希表******
Map的映射关系 通讯录
姓名 映射 关系
Key Value
Key不允许重复 Value 允许重复
静态内部类
定义在类的成员级别(member—leval) ,同时被static修饰的一种类
最大的作用就是一个类从概念上应该属于另一个范围
使用上
1.在LinkedList内部使用:和普通类没有区别
Node n=new Node();
2.在LinkedList外部使用,指明所属关系
LinkedList.Node n=new ListedList.Node();
解决办法 :
前提
1.Object类型是所有类型的祖先类型。
2.向上转型是自然的。
class MyArrayList{
private object[]array;
private int size;
}
java 1.5都是这么去做的。
但上述办法有些许弊端
MyArrayList list=new MyArraylist();
list.add(new Person());
Person p=(Person)list.get(0); 1.//每次都得向下转型。
Book b=(Book)list.get(0); 编译时没问题,运行时会异常
前提:问题发生在编译时期,影响远远小于在运行时期。
因此 ,泛型诞生了。
泛型:
泛型作用在编译期间
MyArrayList<String>和MyArrayList<Person>和MyArrayList<Book>
运行期间就是一个MyArrayList,这个过程叫做类型擦除。
本质上被擦成Object类型的了。