教材学习内容总结
第十五章 泛型与集合框架
泛型
- 泛型:目的为建立具有类型安全的集合框架。
- 泛型类声明:
class People<E> class 名称<泛型列表>
链表
- 定义:若干个结点的对象组成的一种数据结构。
- LinkedList泛型类:创建链表对象。
-
常用方法:
public boolean add(E element)
,链表末尾添加结点。public void add(int index,E element)
,向链表指定位置添加一个结点。public void clean()
,删除链表结点。public E get(int index)
,得到链表中指定位置的结点中的数据。public E set(int index,E element)
,将当前链表index位置的结点的数据替换为参数element指定的数据,并返回被替换的数据。public int size()
,返回链表的长度,即结点 个数。
- 遍历结点:链表对象可以使用Iterator()方法获取一个Iterator对象,该对象就是针对当前链表的迭代器。
Iterator<Integer> iter=list.iterator();
- 排序和查找:Colleations类提供的用于排序和查找的类方法如下:
public static sort(List<E> list)
,该方法将list中的元素升序排列。int binarySearch(List<E> list,T key,CompareTo<T> c)
,使用折半法查找,成功返回索引位置,否则返回-1.
- 洗牌与旋转:Collections类还提供了将链表中的数据重新随机排列的类方法以及旋转链表中数据的类方法。
public static void shuffle(List<E> list)
,将list中的数据随机排列。static void rotate(List<E> list,int distance)
,旋转链表中的数据。public static void reverse(List<E> list)
,翻转list中的数据。
堆栈
- 声明堆栈:
Stack<E> stack=new Stack<E>();
- 压栈操作:
public E push(E item);
- 弹栈操作:
public E pop();
- 获取堆栈顶的数据:
public int search(Object data);
散列映射
HashMap<K,V>
泛型类创建的对象称作散列映射。如:HashMap<String,Student> hashtable=HashSet<String,Student>();
。- 常用方法详见课本。
树集
TreeSet<E>
类创建的对象称作树集,采用树结构存储数据。并使用add方法添加结点- 结点的大小关系,与添加顺序无关,是按照字典序排序的。
- 常用方法详见书本。
树映射
TreeMap<K,V>
对象为树映射。树映射使用public V put(K key,V value)
方法添加结点,不仅存储数据value,还存储和其关联的关键字 key。
自动装箱与拆箱
- 程序允许把一个基本数据类型添加到类似链表等数据结构中,系统会自动完成基本类型到相应对象的转换(自动装箱)。当从一个数据结构中获取对象时,如果该对象时基本数据的封装对象,那么系统自动完成对象到基本类型的转换(自动拆箱)。
代码托管
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 31/31 | 1/1 | 8/8 | |
第二周 | 250/281 | 1/2 | 8/16 | |
第三周 | 586/867 | 1/3 | 15/31 | |
第四周 | 450/1317 | 1/4 | 9/40 | |
第五周 | 251/1568 | 2/6 | 5/45 | |
第六周 | 972/2540 | 1/7 | 10/55 | |
第七周 | 467/3007 | 1/8 | 10/65 | |
第八周 | 459/3466 | 2/10 | 8/73 |