八大基本数据类型: short(16位 补码表示的有符号整数), int(32位 补码表示的有符号整数), long(64位 补码表示的有符号整数), float(单精度132位), double(双精度64位), byte, boolean, char. 四大引用数据类型(数据结构): 数组array, 链表linkedlist, 图graph, 散列表hash. 其他常见的数据结构好像都是这四种的特殊情况或者是可以用这四种来进行实现,比如说栈 队列 树 堆等等。
当然了 以上都是很粗略的分类 你若要问:像什么treeset,treemap, trie应该归到什么类里面呢?下面就要说java中的集合类。
首先为什么要使用集合类? 当我们事先不知道要存放数据的个数 或者需要一种比数组下标存取机制更加灵活的方法时 需要用到集合类。
java的集合类存放于java.util包中。集合类型主要有三种:set, list, map.下面分别定义:
他是一种最简单的集合 普通的set内部元素不按照特定方式排序(因为set的一些变体比如treeset可以实现排序) 只是简单的把对象加入到集合之中。set中不能有重复对象。(常见的set有:hashset(本质上是hashmap 集的实现), treeset: 实现sorted set(本质上是treemap集的实现))
内部元素以线性储存。(常见的list有: arraylist, linkedlist(可以用来实现栈 队列), vector)
每个元元素都是一个键值对(hashtable, hashmap, treemap)
这是另一种和其他三种同级别的类型 不存在与java.util包里,而是在java基础包中:java.lang。这种数据类型是为了储存固定长度的数组的。 array和arrays有什么区别? array就是数组 是一个长度固定的容器 而arrays是array的工具类 其静态方法定义了崔array的各种操作,比如copyOf(), sort(), toString()等等。
最后来总结一下:
单精度的组成:1+8+23 即1位符号 8位指数 23位小数。双精度的组成:1+11+52 ↩︎