Java实际开发中set,Map,List分别用在什么情况?

我不是要知道这三个集合的区别,我想知道具体什么情况使用什么集合比较合适,求高人指教,谢谢... 我不是要知道这三个集合的区别,我想知道具体什么情况使用什么集合比较合适,求高人指教,谢谢 展开
 我来答
无限江山是称家i
2011-03-21 · TA获得超过358个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:213万
展开全部
set、map、list是Java API封装的数据结构。之所以封装它们,是为了符合数学意义上的set、map和list上的一些特点。
比如set(集合)具有无序性,而且元素不能重复。
map主要是散列思想,即key-value值对。
list是链表结构,插入和删除元素,一个在头,一个在尾。
另外还有Stack是同一端插入和删除。
你说他们功能一样其实是错的,虽然对于某些问题用他们都可以解决,比如迷宫问题,可以用Stack,可以用链表,甚至可以直接用个简单的一维数组(因为多维数组可以由一维数组表示),但是解决时的复杂度是不同的。这其中除了算法中的时间、空间代价的不同(比如使用散列,搜索时间大大减少,但是占用空间增大),当然还包括使用不同数据结构解决不同问题时的“自然”程度(即让别人容易明白你的算法的程度)。
说了这么多,其实封装这些东西就是为了方便编程,方便实现功能。
就像你可以说:“一条语句和一个函数(语句组成)本质上都是相同的,那为什么要那么麻烦设计函数?”那你就可以去查查函数编程思想和之后发展起来的面向对象编程思想的优势。

最后再提下Java里面一些高级点的东西,即所谓线程安全,某些数据结构封装类不是线程安全的,而另外一些是,这些你可以去查看API或者底层代码实现,要花费很大耐心的
ahyyxx222
2011-03-21 · TA获得超过2532个赞
知道小有建树答主
回答量:1405
采纳率:33%
帮助的人:1205万
展开全部
如果你只是要取得一堆的对象,不需要排序,只在意一个对象在或不在集合里,就用set
如果在第一条的基础上,你还想能方便快速地取出其中的某一个,就用map,把一个独一无二的标志性的对象属性做为key
如果你对这堆对象有顺序要求,就用list
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞天小女警s_s
推荐于2017-09-19 · TA获得超过127个赞
知道答主
回答量:40
采纳率:100%
帮助的人:17.3万
展开全部
其实实际开发中 就list和map用的多点
list嘛 比如你从数据库里读了很多条记录 经过处理封装成对象 就可以装在一个该对象类型的list里面 就可以迭代访问里面每个对象,里面的对象是有顺序的,只有索引,你不能通过对他们取别的名字之类的得到她 ;
map呢 是key-value组成的键值对;value可以是任意object;key是一个String;你可以通过key访问value;比如在servlet技术中 放在request里的东西 response 里的东西这些都是map;还有比如解析xml的时候 你读到的东西 也可以用map来保存
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4b0337b
2011-03-21 · 超过10用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:0
展开全部
set 一般无序不重复.
map kv 结构
list 有序

就个人而言.list 用的比较多. 其次map 最后set
至于什么情况下使用什么集合.看情况了. 也不好说.也没那么绝对.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lqefn
2011-03-21 · TA获得超过2655个赞
知道小有建树答主
回答量:3345
采纳率:0%
帮助的人:1736万
展开全部
完全不相关的东西,如果用起自然就合适。不会冲突的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式