List和Map的区别

欢迎来到我的Java八股文专栏!

各位程序员小伙伴们好呀~ 我是雪碧聊技术,很高兴能在CSDN与大家相遇!✨

专栏介绍

这个专栏将专注于分享Java面试中的经典"八股文"知识点 ,内容涵盖:

  • Java基础核心概念
  • JVM原理与性能调优
  • 多线程与并发编程
  • ️ 设计模式实战
  • ️ 常用框架源码解析
  • ⚙️ 系统架构设计思想

为什么选择这个专栏?

  1.  精准定位:直击大厂Java面试高频考点
  2.  系统全面:从基础到进阶,构建完整知识体系
  3.  实战导向:理论+代码示例,拒绝空谈
  4.  深度解析:不只是背诵,更要理解原理
  5.  持续更新:紧跟技术发展趋势

学习建议

建议大家可以这样使用本专栏:

  1.  每日一读:每天消化1-2个知识点
  2. ✍️ 动手实践:所有代码建议亲自敲一遍
  3. ️ 分类整理:建立自己的知识脑图
  4.  定期复习:对抗遗忘曲线
  5.  互动讨论:评论区欢迎交流探讨

️ 工具推荐

学习过程中这些工具可能会帮到你:

  • IDEA:Java开发神器
  • JProfiler:性能分析工具
  • JUnit:单元测试框架
  • Markdown:笔记整理
  • ️ Git:版本控制

致读者

技术之路道阻且长,但行则将至 ✊

在这个专栏中,我会:

✅ 用最通俗的语言解释复杂概念
✅ 提供可直接运行的代码示例
✅ 标注每个知识点的面试权重
✅ 分享实际项目中的经验教训
✅ 及时回复大家的疑问

最后寄语

"八股文"虽被诟病,但扎实的基础知识永远是程序员的立身之本

希望这个专栏能成为你:

  • 面试冲刺的利器
  • ️ 技术进阶的阶梯
  • 结识同好的平台

让我们携手并进,在技术的星辰大海中扬帆远航! ⛵

记得⭐️收藏 ⭐️关注 ⭐️不迷路哦~

目录

一.概述

二.明细

1.List

2.Map

3.Set

三.场景


一.概述

  • List是存储单列数据的集合,Map是存储键、值双列数据的集合
  • List存储的数据是有序、可以重复的,值允许有多个null
  • Map中存储的数据是没有顺序的,键不能重复,值是可以有重复的,key最多有一个null

二.明细

1.List

  • 可重复(可插入多个null元素)
  • 有序(输出顺序就是插入顺序)
  • 常用的实现类有ArrayList、LinkedList和Vector。其中ArrayList最流行,ArrayList适合查询多的场景,而LinkedList适合添加、修改多的场景

2.Map

  • Map是一个接口,但不是collection的子接口或实现类。
  • Map的每个Entry(实体)都持有两个对象,即键、值。其中值可以相同,但键必须是唯一的。
  • TreeMap也通过Compatator或者Comparable维护了一个排序顺序
  • Map里可以拥有多个null值,但是只能有一个null键
  • Map接口最流行的几个实现类就是HashMap、LinkedHashMap、Hashtable和TreeMap(HashMap和TreeMap最常用)

3.Set

  • 不可重复(只允许一个null值)
  • 无序
  • Set接口最流行的几个实现类是HashSet、LinkedHashSet、TreeSet。最流行的是基于HashMap实现的HashSet。TreeSet还实现了SortedSet接口,因此TreeSet是一个根据其compare()和compareTo()的定义进行排序的有序容器。

三.场景

1.如果已经知道了索引,那么List的实现类ArrayList可以提供更快速的访问;如果经常添加、删除元素,那么应当选择LinkedList。

2.如果你想容器中的元素能够按照它们插入的次序进行有序存储,那么可以选择List,因为它有序。

3.如果你想保证插入元素的唯一性(即不想有重复值的出现),那么可以选择一个Set的实现类,比如HashSet、LinkedHashSet或者TreeSet。所有Set的实现类都遵循唯一性,而且还提供了额外的特性比如TreeSet,这还是一个SortedSet,所有存储于TreeSet中的元素可以使用Java里的Compatator或者Comparable进行排序。

4.如果你想以键、值的形式存储数据,那么应当选择Map。

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~

你可能感兴趣的:(Java八股文,list,数据结构)