线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:
顺序表,链表,栈,队列,字符串
线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。
线性表:
1.顺序表(逻辑上线性,在内存中存储时,也是严格按照逻辑上的次序保存起来的)
2.链表(逻辑上线性,在内存中存储时,不保证连续性)
Java中已经提出的顺序表 - 类: java.util.ArrayList
借助文档 :https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
方法:
boolean add(e); 向顺序表中进行"尾插", 一定会返回true
void add(index,e); 向顺序表中插入e元素,在下班为index的位置。
remove(index); 删除index位置的元素
get(index); 获取顺便表中的index位置的元素,并且返回
set(index,元素) 向顺序表中的index位置设置(set)元素进去,并且返回该下标位置原来的元素
boolean contains(元素); 判断顺序表中是否包含该元素,包含返回true;否则false
下标 indexOf(); 返回该元素从前往后找的首次遇到的下标,如果没找到换回-1
下标 lastIndexOf(); 返回该元素从后往前找的首次遇到的下标,如果没找到换回-1
ArrayList是一个泛型类 - 元素类型用泛型表示
ArrayLista1; 元素类型是 Integer 的顺序表
ArrayLista2 ; 元素类型是 String 的顺序表
ArrayList a = new ArrayList<>() ; 使用默认构造方法(无惨构造方法)
在顺序表(ArrayList)的使用过程中,不需要考虑容量(capacity)的问题,只需要考虑已有元素个数的问题!
多态概念:
1.上级的引用可以指向下级的对象(向上转型)
2.只有类(不是抽象类)才能实例化对象
注意:
1.通过引用可以执行哪些方法 - by引用类型决定
2.通过引用执行方法后,真正执行的是哪个类的方法 - by引用指向的对象类型决定
我们之前看到的ArrayList下的各种方法,其实都属于list所有