常见的数据结构

4 篇文章 0 订阅
4 篇文章 0 订阅

1.数组:

数组是最常用的数据结构,数组的特点是 长度固定, 可以用下标索引, 并且所有的元素的类型都是一致的。数组常用的场景有:从数据库里读取雇员的信息存储为EmployeeDetail[ ];把一个字符串转换并存储到一个字节数组中便于操作和处理等等。尽量把数组封装在一个类里,防止数据被错误的操作弄乱。另外,这一点也适合其他的数据结构。

2.列表:

列表和数组很相似,只不过它的 大小可以改变。 列表一般都是 通过一个固定大小的数组来 实现的,并且 会在需要的时候 自动调整大小。列表里 可以包含重复的元素。常用的场景有,添加一行新的项到订单列表里,把所有过期的商品移出商品列表等等。一般会把列表初始化成一个合适的大小,以减少调整大小的次数。

3. 集合:

集合和列表很相似,不过它 不能放重复的元素。

4. 堆栈:

堆栈只允许 对最后插入的 元素进行操作(也就是 后进先出,Last In First Out –LIFO)。如果你移除了栈顶的元素,那么你可以操作倒数第二个元素,依次类推。这种后进先出的方式是通过仅有的 peek(),push()和 和 pop()这几个方法的 强制性限制达到的。

5. 队列:

队列和堆栈有些相似,不同之处在于在队列里 第一个插入的元素也是第一个被删除的元素(即是 先进先出)。这种先进先出的结构是通过只提供 peek(),offer()和 poll()这几个方法来访问数据进行限制来达到的。例如,排队等待公交车,银行或者超市里的等待列队等等,都是可以用队列来表示。

6. 链表:

链表是一种由 多个节点组成的数据结构,并且每个节点包含有数据以及指向下一个节点的引用,在双向链表里,还会有一个指向前一个节点的引用。例如,可以用单向链表和双向链表来实现堆栈和队列,因为链表的两端都是可以进行插入和删除的动作的。当然,也会有在链表的中间频繁插入和删除节点的场景。Apache 的类库里提供了一个 TreeList 的实现,它是链表的一个很好的替代,因为它只多占用了一点内存,但是性能比链表好很多。也
就是说,从这点来看链表其实不是一个很好的选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值