JAVA多态 链表
JAVA(多态,链表)
多态形成3个条件:
1.有继承
2.由重写
3.父类对象指向子类引用
第一种多态形式(向上转型)
父类 父类对象=new 子类();
第二种多态形式(向下转型)
子类 子类对象=new 父类();
发生向下转型,要先向上转型,才能通过强转再转成子类类型
instanceof(); 判断某一个对象是否是某一个类的实例
Object方法:
instanceof关键字
匿名对象
举例:
匿名对象优点:能节约资源
链表
单链表
单链表是一组的存储单元放线性表的元素,存储单元可以连续也可以不连续。
单链表结构特点:
data是数据域,存放数据元素;next是指针域,存放该结点后继节点的地址
data | next |
双链表
双链表结构特点:
prior为前驱指针,存放该结点的前驱结点的地址
next为后继指针,存放该结点的后继结点的地址
prior | data | next |
循环链表
循环双链表是双链表的改变,特点为:
(p->prior)->next = (p->next)->prior
数组与链表的优缺点
取出线性表第i个元素这样按位置随机访问的操作,像数组这样的顺序表快,时间复杂度O(1),而链表这样只能从头往后找的,时间复杂度为O(n)。
链表插入和删除不需要移动元素,时间复杂度为O(1),数组这样的线性表插入删除需要移动元素,时间复杂度为O(n)