什么是集合框架
❤️❤️Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。有几个典型的集合框架: Collection接口:是集合框架的根接口,定义了一组通用的方法,用于操作集合中的元素。它有两个主要的子接口:List和Set。 List接口:继承自Collection接口,表示一个有序的集合,允许重复元素。它的常见实现类有ArrayList、LinkedList和Vector。 Set接口:继承自Collection接口,表示一个不允许重复元素的集合。它的常见实现类有HashSet、TreeSet和LinkedHashSet。 Map接口:表示一组键值对的集合,每个键都是唯一的。它的常见实现类有HashMap、TreeMap和LinkedHashMap。 集合框架提供了丰富的方法和算法,可以方便地对集合进行增删改查等操作。它可以用于各种场景,如数据存储、数据排序、数据过滤等。使用集合框架可以提高代码的可读性和可维护性,并且可以更好地利用Java语言的特性。 如下是其总体系图(里面包含了很多集合框架,并且内部都是重要的类和接口):
这图我们看下就行,不要求强记里面的类和接口,在之后的学习里会一一讲解这里面的类和接口。
❤️❤️使用成熟的集合框架,有助于我们便捷、快速的写出高效、稳定的代码学习背后的数据结构知识,有助于我们理解各个集合的优缺点及使用场景。
腾讯-Java后台开发面经 1. HashMap 了解不,介绍一下,如果一个对象为 key 时,hashCode 和 equals 方法的用法要注意什么? 2. HashSet 和 HashMap 的区别是什么? 3. HashMap 是线程安全的么?那需要线程安全需要用到什么? 阿里巴巴-Java后台开发面经 1. ArrayList 和 LinkedList 的区别是什么? 2. 有了解过 HashMap 的具体实现么? 3. HashMap 和 ConcurrentHashMap 哪个效率更高? 今日头条-Java后台开发面经 1. 编程题:判断一个链表是否是一个回文链表。 2. Redis 的 zset 类型对应到 java 语言中大致是什么类型? 3. hashCode 主要是用来做什么用的? ❤️❤️在面试时大部分是跟其有关的知识,所以我们得学好它,才能找到心仪的offer。
🎯🎯数据结构是计算机科学中用于组织和存储数据的一种方式。它定义了数据的组织方式、访问和操作数据的方法,以及数据之间的关系。常见的数据结构包括数组、链表、栈、队列、树、图等。(之后一一会讲)
❤️❤️在学数据结构的这阶段,我们主要学习以下容器,每个容器其实都是对某种特定数据结构的封装,大概了解一下,也不用记,之后的文章会给大家一一详细讲解并模拟实现: 1. Collection:是一个接口,包含了大部分容器常用的一些方法 2. List:是一个接口,规范了ArrayList 和 LinkedList中要实现的方法: ArrayList:实现了List接口,底层为动态类型顺序表 LinkedList:实现了List接口,底层为双向链表 3. Stack:底层是栈,栈是一种特殊的顺序表 4. Queue:底层是队列,队列是一种特殊的顺序表 5. Deque:是一个接口 6. Set:集合,是一个接口,里面放置的是K模型: HashSet:底层为哈希桶,查询的时间复杂度为O(1) TreeSet:底层为红黑树,查询的时间复杂度为O( ),关于key有序的 7. Map:映射,里面存储的是K-V模型的键值对: HashMap:底层为哈希桶,查询时间复杂度为O(1) TreeMap:底层为红黑树,查询的时间复杂度为O( ),关于key有序
1. 泛型 Generic 2. 自动装箱 autobox 和自动拆箱 autounbox 3. Object 的 equals 方法 4. Comparable 和 Comparator 接口 ❤️❤️对于这四个知识点,我们最后两个知识点在这之前就学了,前面两个没学,不过很快就会讲。