Java实际开发中set,Map,List分别用在什么情况?
展开全部
set、map、list是Java API封装的数据结构。之所以封装它们,是为了符合数学意义上的set、map和list上的一些特唯卖点。
比如set(集合)具有无序性,而且元素不能重复。
map主要是散列思想,即key-value值对。
list是链表结构,插入和删除元素,一个在头,一个在尾。
另外还有Stack是同一端插入和删除。
你说他们功能一样其实是错的,虽然对于某些问题用他们都可以解决,比如迷宫问题,可以用Stack,可以用链表,甚至可以直接用个简单的一维数组(因为多维数组可以由一维数组表示),但是解决时的复杂度是不同的。这其中除了算法中的时间、空腔老间代价的不同(比如使用散列,搜索时间大大减少,但是占用空间增大),当然还包括使用不同数据结构解决不同问题时的“自然”程度(即让别人容易明白你的算法的程度)。
说了这么多,其实封装这些东西就是为了方便编程,方便实现功能。
就像你可以说:“一条语句和一个函数(语句组成)本质上都是相同的,那为什么要那么麻烦设计函数?”那你就可以去查查函数编程思想和之后发展起来的面向对象指圆逗编程思想的优势。
最后再提下Java里面一些高级点的东西,即所谓线程安全,某些数据结构封装类不是线程安全的,而另外一些是,这些你可以去查看API或者底层代码实现,要花费很大耐心的
比如set(集合)具有无序性,而且元素不能重复。
map主要是散列思想,即key-value值对。
list是链表结构,插入和删除元素,一个在头,一个在尾。
另外还有Stack是同一端插入和删除。
你说他们功能一样其实是错的,虽然对于某些问题用他们都可以解决,比如迷宫问题,可以用Stack,可以用链表,甚至可以直接用个简单的一维数组(因为多维数组可以由一维数组表示),但是解决时的复杂度是不同的。这其中除了算法中的时间、空腔老间代价的不同(比如使用散列,搜索时间大大减少,但是占用空间增大),当然还包括使用不同数据结构解决不同问题时的“自然”程度(即让别人容易明白你的算法的程度)。
说了这么多,其实封装这些东西就是为了方便编程,方便实现功能。
就像你可以说:“一条语句和一个函数(语句组成)本质上都是相同的,那为什么要那么麻烦设计函数?”那你就可以去查查函数编程思想和之后发展起来的面向对象指圆逗编程思想的优势。
最后再提下Java里面一些高级点的东西,即所谓线程安全,某些数据结构封装类不是线程安全的,而另外一些是,这些你可以去查看API或者底层代码实现,要花费很大耐心的
展开全部
如果你只是要取得一堆的对象,不需要排序,只在意一个对象在或不在集合里,就用set
如果在第一条的基础上,凯姿你还想能方便快速地取蔽亩出其中的某一个,就用map,把一个独一无二的标志性的对象属性做盯并绝为key
如果你对这堆对象有顺序要求,就用list
如果在第一条的基础上,凯姿你还想能方便快速地取蔽亩出其中的某一个,就用map,把一个独一无二的标志性的对象属性做盯并绝为key
如果你对这堆对象有顺序要求,就用list
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实实际开发中 就list和map用的多点
list嘛 比如你从数据库里读了很枝配多条记录 经过处理封装成对象 就可以装在一个该对象类型的list里面 就可以迭代访问里面每个对象,里面的对象是有顺序的,猛碰指只有索引,你不能通过对他们取别的名字之类吵禅的得到她 ;
map呢 是key-value组成的键值对;value可以是任意object;key是一个String;你可以通过key访问value;比如在servlet技术中 放在request里的东西 response 里的东西这些都是map;还有比如解析xml的时候 你读到的东西 也可以用map来保存
list嘛 比如你从数据库里读了很枝配多条记录 经过处理封装成对象 就可以装在一个该对象类型的list里面 就可以迭代访问里面每个对象,里面的对象是有顺序的,猛碰指只有索引,你不能通过对他们取别的名字之类吵禅的得到她 ;
map呢 是key-value组成的键值对;value可以是任意object;key是一个String;你可以通过key访问value;比如在servlet技术中 放在request里的东西 response 里的东西这些都是map;还有比如解析xml的时候 你读到的东西 也可以用map来保存
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
set 一般无序不重复.
map kv 结构
list 有序
就个人而言逗郑.list 用的比较多山配颂. 其次map 最后set
至于什么情况下使用什么集合.看情况了. 也卖世不好说.也没那么绝对.
map kv 结构
list 有序
就个人而言逗郑.list 用的比较多山配颂. 其次map 最后set
至于什么情况下使用什么集合.看情况了. 也卖世不好说.也没那么绝对.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
完全不相关的东西,如果用起自然就合适。不会冲突的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询