
数组
特点:
①索引查询,速度快
②数组元素可以是任意类型
③数组元素只能是一种相同类型
④数组可以视为对象,每个元素都是其成员变量
⑥对最后一个元素增删时,ArrayList速度其实比链表快
链表
```
public class ListNode {
int val;
ListNode next;
ListNode pre;
ListNode() {}
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next, ) {
this.val = val;
this.next = next;
this.pre = pre;
}
}
```
栈
使用数组实现的叫静态栈、使用链表实现的叫动态栈
常用方法:
empty()、peek()、pop()、push(obj)、search(obj)
队列
常用:remove(obj)、offer(obj)、poll()、peek()、isEmpty()、size()
可以查看
https://blog.csdn.net/zyx1260168395/article/details/103656994
树
非线性,相对于链表、数组而言,树的平均运行时间更短(往往与树相关的排序时间复杂度都不会高)
```
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
```
散列表 Set、Map
红黑树