Java 语言中 List、Set 和 Map 的区别

来源:互联网 发布:帝国主义算法 编辑:程序博客网 时间:2024/05/21 23:00
List、Set 和 Map 都是实现了 Collection 接口的接口。本文将讨论 Java 语言中这三者之间的区别。

List Vs Set Vs Map

1) 重复性

  • List 允许有重复元素。任何数量的重复元素都可以在不影响现有重复元素的值及其索引的情况下插入到 List。
  • Set 不允许重复。Set 以及所有实现了 Set 接口的类都不允许重复值的插入。
  • Map 以键值对的形式对元素进行存储。Map 不允许重复键但允许重复值

2) 空值

  • List 允许任意数量的空值
  • Set 最多允许一个空值的出现。
  • Map 只允许出现一个空键但允许任意数量的空值

3) 排序

  • List 及其所有实现类保持了每个元素的插入顺序
  • Set 中的元素都是无序的;但某些 Set 的实现类以某种顺序对其中的元素进行排序,比如 LinkedHashSet 按照元素的插入顺序进行排序。
  • Map 跟 Set 一样对元素进行无序存储,但其某些实现类对元素进行了排序。比如,TreeMap 依据键对其中的元素进行升序排序而 LinkedHashMap 则按照每个元素的插入次序进行排序。

4) 常用实现类

  • List:ArrayList、LinkedList 等等。
  • Set:HashSet、LinkedHashSet、TreeSet、SortedSet 等等。
  • Map:HashMap、TreeMap、WeakHashMap、LinkedHashMap、IdentityHashMap 等等。

什么时候使用 Java 里的 List、Set 和 Map?

1) 如果你的数据不允许有重复值,Set 是最适合的选择,因为其所有实现类都不允许有重复值。
2) 如果需要经常根据元素的索引值进行一些查询操作,那么 List(ArrayList)将是一个不错的选择。
3) 如果需要保留每个元素的插入次序,那么还是首选 List。
4) 如果你的数据需要进行 key - value 映射,那么就是 Map 了。
原文链接:http://beginnersbook.com/2015/01/difference-between-list-set-and-map-in-java/
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 身份证后六位密码x怎么办 借了贷款人死了怎么办 贷款实在还不起怎么办 个人贷款还不起怎么办 珠海派出所办事不公平怎么办 改身份证后学籍怎么办? 威海身份证丢了怎么办 车牌轻微变形了怎么办 车牌照丢一个怎么办 小车车牌掉了怎么办 车牌撞变形了怎么办 车牌烂了一块怎么办 机动车牌照丢了怎么办 汽车想换车牌怎么办 机动车前牌照丢失怎么办 汽车后牌照丢失怎么办 机动车扣分超证怎么办 联通香港无服务怎么办 长乐改区 闽侯怎么办 学校代码查不到怎么办 买票没带身份证怎么办 163邮件发错人了怎么办 pos机未到账怎么办 刷卡迟迟不到账怎么办 农行全渠道升级怎么办 手机输入身份证x怎么办 买房子没有社区怎么办 结婚没钱买房子怎么办 假离婚买房子怎么办? 微信怎么办居住证厦门 厦门没有暂住证怎么办居住证 机票上没有登机口怎么办 德国黑工怎么办居留 夏天吹空调感冒怎么办 拖鞋穿着脚臭怎么办 住墨尔本高层着火怎么办 中转航班托运行李怎么办 孩子淋雨感冒了怎么办 出国留学国内手机号怎么办 出国留学移动号怎么办 要出国了手机卡怎么办