"这篇个人笔记主要涵盖了Java核心API中的关键概念,包括集合框架、泛型以及实用类的深入讲解。作者分享了对这些主题的理解,并欢迎读者提出意见和指正。" 1. 集合框架: 集合框架是Java中用于存储和操作对象的重要工具。它包括各种接口和类,如Collection、List、Set和Map。集合不同于数组,因为它可以动态调整大小,且提供了更丰富的操作。 1.1. 什么是集合: 集合是一种存储多个对象的容器,允许进行各种操作,如添加、删除和查找元素。 1.2. 集合和数组: 数组是固定大小的,而集合可以根据需要动态扩展。集合提供了更多的功能,如排序、遍历等。 1.3. Java集合类: Java集合类包括ArrayList、LinkedList、HashSet、HashMap等,它们实现了不同的接口,如Collection、List、Set和Map。 1.4. Collection接口: Collection是最基本的集合接口,所有单值集合都继承自它。它定义了添加、删除和检查元素的基本操作。 1.4.1. 常用Collection接口的共性方法: 例如add(), remove(), isEmpty(), size()等。 1.5. List接口: List是有序的集合,允许有重复元素。ArrayList和LinkedList是List的实现。 1.5.1. List接口特有方法: 如get(), set(), addIndex(), removeIndex()等。 1.5.2. List接口的实现类: ArrayList提供随机访问,适合频繁查找;LinkedList适合频繁插入和删除。 1.6. Set接口: Set不允许有重复元素,它遵循唯一性。 1.6.1. Set的唯一校验: 添加元素时会检查是否已存在。 1.6.2. Set接口的实现类: HashSet是最常用的实现,而TreeSet按元素排序。 1.7. 迭代器: 用于遍历集合的接口,提供了hasNext()和next()等方法。 1.8.1. Iterable: 所有可迭代的集合都实现了Iterable接口,使得可以使用for-each循环。 1.8.2. Iterator的方法: 如hasNext(), next(), remove()。 1.8.3. List特有的迭代器ListIterator: 提供了向前和向后遍历,以及添加元素的能力。 1.9. Map接口: 用于存储键值对,键是唯一的。 1.9.1. Map与Collection: Map不是Collection的子接口,但提供了values()和keySet()来获取值的集合和键的集合。 1.9.2. 常用方法: put(), get(), remove(), containsKey(), containsValue()等。 1.10. 使用Collections操作集合: Collections提供了许多静态方法,用于操作集合,如排序、查找、填充等。 2. 泛型: 泛型是Java中的一种类型系统,用于增强类型安全性和代码可读性。 2.1. 什么是泛型: 泛型允许在类、接口和方法中使用类型参数,限制了可以存储的数据类型。 2.2. 泛型集合: 如ArrayList<T>,T是类型参数,确保集合只能存储特定类型的对象。 2.3. 泛型类: 自定义类可以声明类型参数,如MyClass<T>,T代表任意类型。 2.3.1. 泛型类的默认类型: 未指定类型参数时,通常默认为Object。 2.3.2. 泛型类细节: 包括类型参数的边界、类型擦除等。 2.4. 泛型方法: 方法也可以声明类型参数,如 `<T> void print(T t)`。 2.5. 泛型接口: 接口可以声明类型参数,实现类需要提供具体类型。 2.6. 泛型通配符: 如"? extends T"(上限通配符)和"? super T"(下限通配符),用于放宽类型约束。 2.7. 泛型限定: 限定泛型可以指定类型参数的边界,如"E extends Number"或"E super Integer"。 3. 实用类: Java提供了一些实用类,简化了常见的编程任务。 3.1. 枚举: 枚举类型是预定义一组常量的类,如DayOfWeek {MONDAY, TUESDAY, ...}。 3.2. 包装类: 为每个基本类型提供了对应的引用类型,如Integer、Double等。 3.2.1. 包装类的特点: 自动装箱和拆箱、提供额外方法。 3.2.2. 包装类的作用: 在需要引用类型的地方使用基本类型。 3.2.3. 包装类和基本类型: 转换关系,如int -> Integer,Integer -> int。 3.2.4. 包装类的构造方法: 如new Integer(int value)。 3.2.5. 包装类的常用方法: 如parseInt(), toString()等。 3.2.6. 装箱和拆箱: 将基本类型转换为包装类,反之亦然。 3.3. Math类: 提供数学运算,如sqrt(), pow(), random()等。 3.4. Random类: 生成随机数,如nextInt(), nextDouble()。 3.4.1. 构造方法: Random()创建新的随机数生成器。 3.4.2. 常用方法: nextInt(int bound), nextDouble()等。 3.5. String类: 不可变的字符序列,提供了字符串操作。 3.6. StringBuffer类: 线程安全的字符串操作类,适用于大量拼接操作。 3.6.1. 常用方法: append(), insert(), delete(), replace()等。 3.6.2. String、StringBuffer和StringBuilder: String是不可变的,而StringBuffer和StringBuilder在多线程环境下性能更好。 3.7. 操作日期时间: Java提供了处理日期和时间的类,如Date和SimpleDateFormat。 3.7.1. java.util.Date类: 表示日期和时间,可进行日期操作。 3.7.2. java.text.SimpleDateFormat类: 用于日期和时间的格式化和解析。 笔记中还涉及了其他日期时间类,如Calendar和LocalDateTime,以及如何进行日期和时间的计算和格式化。这些内容构成了Java API的基础,对于理解和使用Java编程至关重要。通过深入学习这些知识点,开发者可以编写更加高效、安全和可维护的代码。
![](https://csdnimg.cn/release/download_crawler_static/10805789/bgb.jpg)
![](https://csdnimg.cn/release/download_crawler_static/10805789/bgc.jpg)
![](https://csdnimg.cn/release/download_crawler_static/10805789/bgd.jpg)
剩余62页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 1
- 资源: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)