数据结构
计算机存储组织数据的方式
数组:数据是连续的,遍历查询的时候效率高
链表:数据不是连续的,分为单向链表和双向链表,在插入元素和删除元素的时候效率高。
队列:先进先出型的数据结构
栈:先进后出型
哈希表:是通过哈希算法获得一个哈希码,通过哈希码快速查出数据。
树、图
集合框架
集合存储数据时,长度是可变的,可以存储任意类型的数据。
Collection 是集合框架的父接口。子接口 List和Set
List接口下的对象 存储的数据 是 有序可重复的。
set接口下的对象 存储的数据是 无序不可重复的。
List接口下的实现类
ArrayList类
是一个基于数组的集合(封装了一个数组),在遍历元素的时候效率高,在频繁的增加和删除元素的时候效率低。
API方法
contains方法:是通过给定对象和集合对象做equals比较,如果有一个是true,则结果就是真。
remove方法:如果参数是int 则按索引删除,如果参数是引用类型 则按对象删除(用参数的对象和集合中的对象做equals比较,找到第一个比较结果为true的对象,将其删除)
LinkedList
是基于链表数据结构的集合,在频繁增加或删除元素的时候效率高,遍历的时候效率低。
#### 需求一
频繁的增加删除元素,不用ArrayList要使用LinkedList
##### 需求二
LinkedList也可以当成一个队列来使用
针对队列的方法:
offer() 向队列尾部添加数据。
poll() 从队列头获得数据并从队列中删除。
##### 需求三
可以当成一个栈使用
push() 压栈 将数据存入栈顶
pop() 弹栈 获得栈顶数据,并移除栈顶数据
Vector类
线程安全,效率低。而ArrayList和LinkedList都是线程不安全的。
Stack类
实现栈数据结构的集合
push()
pop()