泛型类
- 声明对象必须指定泛型的实际类型
- 集合框架
EX20
LinkedList< E >
- E为接口或类
- 双链表结构
- new之后是空双链表
LinkedList<String>list = new LinkedList<String>();
常用方法
常用方法 | 说明 | 举例 |
---|---|---|
add(E e) | 增加结点 | List.add(“0”); |
add(int index,E e) | index位置增加结点 | List.add(5,“0”); |
addFirst(E e) | 增加头结点 | List.addFirst(“0”); |
addLast (E e) | 增加尾结点 | List.addLast(“0”); |
subList(int start,int end) | 取下标为start到end-1的元素 | list.subList(0, 5); |
remove(int index) | 删除index位置节点 | |
remove(E e) | 删除首次含有e节点 | |
removeFirst() | 删除首节点并返回节点中对象 | |
removeLast() | 删除尾节点并返回节点中对象 | |
clear() | 删除链表所有节点(也可用举例的方法) | List.subList(2, 4).clear(); |
get(int index) | 得到index位置对象 | |
getFirst() | 得到首结点对象 | |
getLast() | 得到尾结点对象 | |
set (int index,E e) | index位置对象替换为e并返回被替换对象 | |
size() | 返回链表长 | |
indexOf(E e) | 返回含e结点在链表中首次出现位置,若无返回-1 | |
lastindexOf(E e) | 返回含e结点在链表中最后出现位置,若无返回-1 | |
contains(Object e) | 判断链表是否含有e | |
clone() | 克隆链表,新的内存 |
链表的遍历方式有两种:
- get (方法效率没有iterator效率高)遍历
- Iterator (链表遍历时间开销大(散乱存放)所以用iterator提高效率
Iterator< E >
LinkedList <Student> mylist = new LinkedList<Student>();
Iterator <Student> iter = mylist.iterator();
Student stu = iter.next;
常用方法
常用方法 | 说明 | 举例 |
---|---|---|
Set
HashSet
TreeSet
ex7_14
TreeSet< E >
- 在java.util包中
- 创建的对象称为树集
- 按照二叉排序树来存放(前提是类实现了Comparable接口,实现compareTo方法),中序遍历输出
常用方法
常用方法 | 说明 | 举例 |
---|---|---|
add |
(int)(this.mathsco - mathsco )*10(这里乘10是为了保留0.5)
TreeMap<K,V>
- 在java.util
- 按照字典来排序树映射中的键-值对,保证元素按关键字升序排列
- 通过Put增加节点
treemap.put(s1.matSco,s1)相当于自动装箱 - 创建的对象为链表对象,节点可以不存放在邻近位置
- 映射树集
- 注意compareTo相同返回1,不然重复的元素会被覆盖
构造方法
常用方法
泛型接口
EX22