数据结构的特性
数据结构 | 优点 | 缺点 |
---|---|---|
数组 | 插入快,如果知道下标,可以非常快地存取 | 查找慢,删除慢,大小固定 |
有序数组 | 比无序的数组查找快 | 删除和插入慢,大小固定 |
栈 | 提供后进先出方式的存取 | 存取其他项很慢 |
队列 | 提供先进先出方式的存取 | 存取其他项很慢 |
链表 | 插入快,删除快 | 查找慢 |
二叉树 | 查找、插入、删除都快(如果树保持平衡) | 删除算法复杂 |
红-黑树 | 查找、插入、删除都快,树总是平衡的 | 算法复杂 |
2-3-4 树 | 查找、插入、删除都快,树总是平衡的,类似的树对磁盘存储有用 | 算法复杂 |
哈希表 | 如果关键字已知则存取极快,插入快 | 删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分 |
堆 | 插入、删除快,对最大数据项的存取很快 | 对其他数据项存取慢 |
图 | 对现实世界建模 | 有些算法慢且复杂 |
Java是基于C++语言的,与C++的最大不同是没有指针(Java只是摆脱了显式表露的指针)
基本数据类型
名称 | 大小(以位计) | 取值范围 |
---|---|---|
boolean | 1 | true或false |
byte | 8 | -128~+127 |
char | 16 | ‘\u0000’~’\uFFFF’ |
short | 16 | -32768~+32767 |
int | 32 | -2147483648~+2147483647 |
long | 64 | -9223372036854775808~+9223372036854775807 |
float | 32 | 约10^(-38) ~ 10^(+38);7位有效数字 |
double | 64 | 约10^(-308) ~ 10^(+308);15位有效数字 |