《Java程序设计》第十周课下作业
相关知识点的总结
- 泛型
Java 泛型的主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构。
可以使用“class 名称<泛型列表>”声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如: class People<E> 其中People是泛型类的名称,E是其中的泛型,也就是说我们并没有指定E是何种类型的数据,它可以是任何对象或接口,但不能是基本类型数据。
- 链表
public static void shuffle(List<E> list) : 将list中的数据按洗牌算法重新随机排列。
static void rotate(List<E> list, int distance) : 旋转链表中的数据。
public static void reverse(List<E> list) : 翻转list中的数据。
- 堆栈
public E push(E item) : 实现压栈操作
public E pop() : 实现弹栈操作。
public boolean empty() : 判断堆栈是否还有数据。
public E peek() : 获取堆栈顶端的数据,但不删除该数据。
public int search(Object data) : 获取数据在堆栈中的位置
- Comparable 接口
如果链表中存放的对象不是字符串数据,那么创建对象的类必须实现 Comparable 接口,即实现该接口中的方法 int compareTo(Object b) 来规定对象的大小关系。也就是让待排序对象所在的类实现 Comparable 接口,并重写 Comparable 接口中的 compareTo() 方法,缺点是只能按照一种规则排序。
- Comparator 接口
编写多个排序方式类实现 Comparator 接口,并重写新 Comparator 接口中的 compare() 方法,在调用 Arrays 的 sort() 时将排序类对象作为参数传入: public static void sort(T[] a,Comparatorc) ,根据指定比较器产生的顺序对指定对象数组进行排序。数组中的所有元素都必须是通过指定比较器可相互比较的(也就是说,对于数组中的任何 e1 和 e2 元素而言,c.compare(e1, e2) 不得抛出 ClassCastException)。
课上内容补做
- Example15_4