摘要: 3.6 栈 ADT 栈是限制插入和删除只能在一个位置上进行的表,叫做栈的顶部。对栈的基本操作有进栈和出栈,进栈在顶部插入元素,出栈删除最后插入的元素。 栈是一个表,因此任何实现表的方法都能实现栈。显然 ArrayList 和 LinkedList 都支持栈操作;因为栈操作是常数时间操作,除非在非常特 阅读全文
posted @ 2020-08-10 01:00 PotatoTed 阅读(73) 评论(0) 推荐(0)
摘要: 3.5 MyLinkedList 类的实现 MyLinkedList 将用双链表实现,并且还需要保留该表两端的引用。这将需要三个类 MyLinkedList 类,包含到两端的链、表的大小以及一些方法。 Node 类 一个私有的嵌套类。一个节点包含数据以及到前一个节点的链和到下一个节点的链。 Link 阅读全文
posted @ 2020-08-09 17:42 PotatoTed 阅读(106) 评论(0) 推荐(0)
摘要: 3.4 MyArrayList 类的实现 这节提供一个便于使用的 MyArrayList 泛型类的实现,这里不检测可能使得迭代器无效的结构上的修改,也不检测非法的迭代器 remove 方法。 MyArrayList 将保持基础数组,数组的容量,以及存储在MyArrayList 中的当前项数。 MyA 阅读全文
posted @ 2020-08-07 12:06 PotatoTed 阅读(153) 评论(0) 推荐(0)
摘要: 3.2 表 ADT 处理形如 A0, A1, A2, ……, AN-1 的一般的表。我们称这个表大小为N。将大小为0的特殊表称为空表 对于除空表以外的任何表,称 Ai-1 前驱 Ai,Ai 后继 Ai-1。 表ADT上进行操作有: printList 打印整个表 makeEmpty 清空整个表 fi 阅读全文
posted @ 2020-08-06 21:32 PotatoTed 阅读(95) 评论(0) 推荐(0)
摘要: 保存类信息的类是Class getClass()将返回一个调用对象相关的Class实例 Class对象表示的是一种类型,这个类型不一定是对象类型,例如 int.class 是一个Class类型对象 虚拟机为每个类型管理一个Class对象,因此可以直接使用 == 来进行比较 Employee e = 阅读全文
posted @ 2020-08-04 18:53 PotatoTed 阅读(83) 评论(0) 推荐(0)
摘要: 所有枚举类型都是Enum的子类 枚举类编写时就指明了它将有几个实例 public enum Workday { Monday(1), Tuesday(2), Wednesday(3), Thursday(4), Friday(5); private int dayOfWeek; Workday(in 阅读全文
posted @ 2020-08-03 23:38 PotatoTed 阅读(54) 评论(0) 推荐(0)
摘要: 包装类型有Integer、Long、Float、Double、Short、Byte、Character、Void 和 Boolean 这些类的对象的值是不可变的,同时类还是final修饰,不能被extends 如下 triple 函数将不会起作用 public void triple(Integer 阅读全文
posted @ 2020-08-03 23:32 PotatoTed 阅读(77) 评论(0) 推荐(0)
摘要: 一般法则 一个 for 循环的运行时间至多是该for循环内部语句的运行时间乘以迭代次数 从里向外分析循环,一组嵌套循环内部语句的运行时间为该语句的运行时间乘以该组所有的 for 循环的大小的乘积。 将各顺序语句的运行时间求和 if/else语句 不超过判断的运行时间加上,两部分中运行时间长者 下方代 阅读全文
posted @ 2020-07-18 20:41 PotatoTed 阅读(375) 评论(0) 推荐(0)