List和Map的区别
📚 欢迎来到我的Java八股文专栏! 🎉
各位程序员小伙伴们好呀~ 👋 我是雪碧聊技术,很高兴能在CSDN与大家相遇!✨
🚀 专栏介绍
这个专栏将专注于分享Java面试中的经典"八股文"知识点 💡,内容涵盖:
- 📌 Java基础核心概念
- 🧠 JVM原理与性能调优
- 🔄 多线程与并发编程
- 🏗️ 设计模式实战
- 🗃️ 常用框架源码解析
- ⚙️ 系统架构设计思想
🌟 为什么选择这个专栏?
- 🎯 精准定位:直击大厂Java面试高频考点
- 🧩 系统全面:从基础到进阶,构建完整知识体系
- 💎 实战导向:理论+代码示例,拒绝空谈
- 🔍 深度解析:不只是背诵,更要理解原理
- 🆕 持续更新:紧跟技术发展趋势
📖 学习建议
建议大家可以这样使用本专栏:
- 📅 每日一读:每天消化1-2个知识点
- ✍️ 动手实践:所有代码建议亲自敲一遍
- 🗂️ 分类整理:建立自己的知识脑图
- 🔄 定期复习:对抗遗忘曲线
- 💬 互动讨论:评论区欢迎交流探讨
🛠️ 工具推荐
学习过程中这些工具可能会帮到你:
- 🔧 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。
以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~