自学Java之—数据结构

废话不多说哦,写这篇软文的时候我尝试用逆向思维去思考我的学习之路。故事回到原点,看到这篇文章的童鞋请自行带入以下场景:你被带入一家加工工厂,你被分配的任务就是生产可以存放特定物品的箱子,这里你拥有了一台机器,可以制造任何你想要制造的箱子,只要你想得到的都可以。这些箱子里需要放什么呢,有三种物品需要存放:一是杂乱无章的玻璃珠,各种颜色,现在需要每种颜色只保留一个放到箱子里,可以随便放,让小孩子从箱子里取出来弹着玩就是了;二是崭新扑克牌,要求是从箱子里取的时候每张牌的顺序是固定的,是按照事先的要求存放。三是放活人哦(好阔怕),十几万个有姓名的人,要求能够根据名字把对应的人快速的找出来(男女是不是要混住啥的这种问题就不要考虑了…)。这三种场景设定完毕。下面就是靠你设计箱子了。先自己思考一下。

下面一一说一下Java帝国的设计模式:

第一种,一种颜色有多个,放入箱子只保留一种颜色的一个,OK。javaer这样设计的:箱子里放入一个颜色分辨器,每一个珠子放入的时候被它扫描,箱子里没有则扔进去并记录一下,下一个珠子经过它,若历史记录里有了则扔掉,没有则扔进箱子并记录。循环往复。

第二种:设计一个抽屉,抽屉里有很多小盒子,当这些扑克牌放入的时候先从第一个格子放入,依次第二个格子放入第二张…,取的时候有两种拿的办法:一个是先取先放入的,把抽屉拉开取离你近的格子里的扑克牌;另一种是知道要取哪一个格子(格子上有记号笔标记的序号),直接拿出扑克牌。

第三种就有点麻烦了,javaer 这样设计的:根据这些人的名字的首字母建了26个小箱子,然后把标记了字母的箱子挂在26个房间外,当我找李二狗的时候,就直接奔L房间,这样我就会很快的找到李二狗告诉他他妈喊他回家吃饭了。

如上的场景都很生活化,其实就是一个道理,Java的数据结构有很多种,主要的也就那么几种,第一种是set,第二种是list,第三种是map,那什么场景下用什么样的数据结构呢,就要看你放数据的场景了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Frank Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值