Java学习指南:集合框架!
开篇语
哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。
小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!
前言
在 Java 中,集合框架是非常重要的一个部分,几乎在每个 Java 应用程序中都会使用到集合类。无论是存储数据,还是对数据进行操作,集合类都能够提供强大的支持。今天,我们就来深入学习 Java 的集合框架,了解它的基本概念和常用类。
1. 什么是集合框架?
集合框架是 Java 提供的一套用于存储和操作数据的类和接口的集合。它包括了几种不同类型的集合,可以用于不同的数据存储需求,支持动态的数据存储。
Java 集合框架的核心接口有:
- Collection:是所有集合类的根接口,定义了集合的基本操作。
- List、Set、Queue:是继承自 Collection 接口的子接口。
- Map:用于存储键值对的数据结构,它是一个单独的接口,不继承自 Collection。
2. 常见集合类
2.1 List(列表)
List 是一个有序的集合,它允许元素重复。List 中的元素按插入顺序存储,并且可以通过索引访问。常见的 List 实现类有:
- ArrayList:基于数组实现的动态大小的列表,访问元素非常快速,但插入和删除元素效率较低。
- LinkedList:基于双向链表实现,适合频繁插入和删除元素的场景,访问元素效率较低。
示例:使用 ArrayList
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 遍历 List
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
2.2 Set(集合)
Set 是一个不允许重复元素的集合,它也没有索引,因此无法通过索引访问元素。常见的 Set 实现类有:
- HashSet:基于哈希表实现,元素没有顺序,允许存储空值。
- LinkedHashSet:类似于 HashSet,但是它可以保持元素的插入顺序。
- TreeSet:基于红黑树实现,能够保持元素的自然顺序或者按照提供的 Comparator 排序。
示例:使用 HashSet
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
Set<String> fruits = new HashSet<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
fruits.add("Apple"); // 重复的元素不会被添加
// 遍历 Set
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
2.3 Queue(队列)
Queue 是一种先进先出(FIFO,First In First Out)的集合。常见的 Queue 实现类有:
- LinkedList:可以作为队列来使用,支持插入和删除操作。
- PriorityQueue:基于优先级堆实现的队列,队列中的元素按照自然顺序或者自定义的 Comparator 排序。
示例:使用 LinkedList 作为队列
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
queue.offer("Apple");
queue.offer("Banana");
queue.offer("Cherry");
// 使用 poll() 移除队列中的元素
System.out.println(queue.poll()); // 输出 Apple
System.out.println(queue.poll()); // 输出 Banana
}
}
2.4 Map(映射)
Map 是一个存储键值对的集合,它不继承自 Collection 接口,因此不被视为集合。Map 中的每个元素都是一个键值对,键是唯一的,值可以重复。常见的 Map 实现类有:
- HashMap:基于哈希表实现,键值对没有顺序,允许存储空键和空值。
- LinkedHashMap:保持插入顺序,和 HashMap 功能相似。
- TreeMap:基于红黑树实现,按键的自然顺序或自定义排序存储键值对。
示例:使用 HashMap
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
Map<String, Integer> fruitMap = new HashMap<>();
fruitMap.put("Apple", 3);
fruitMap.put("Banana", 5);
fruitMap.put("Cherry", 2);
// 遍历 Map
for (Map.Entry<String, Integer> entry : fruitMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
3. 集合接口与实现类的关系
接口 | 实现类 |
---|---|
Collection | List, Set, Queue |
List | ArrayList, LinkedList, Vector, Stack |
Set | HashSet, LinkedHashSet, TreeSet |
Queue | LinkedList, PriorityQueue |
Map | HashMap, LinkedHashMap, TreeMap, Hashtable |
4. 集合的常用操作
Java 集合框架提供了很多常用的操作,例如:
- add():向集合中添加元素
- remove():从集合中删除元素
- contains():检查集合中是否包含某个元素
- size():获取集合中的元素数量
- clear():清空集合
- isEmpty():判断集合是否为空
5. 集合的性能
在选择具体的集合类时,我们需要考虑性能方面的问题。比如,HashSet
和 HashMap
在元素查找时的时间复杂度是 O(1),而 TreeSet
和 TreeMap
的查找时间复杂度是 O(log n),所以如果对元素顺序有要求并且需要快速查找,TreeSet
和 TreeMap
可能是更好的选择。
6. 总结
今天我们了解了 Java 集合框架的基础知识,掌握了 List、Set、Queue 和 Map 这些常见集合类的使用方法。集合框架为我们提供了丰富的功能来存储和操作数据,选择合适的集合类能够提高程序的效率和可维护性。在今后的开发过程中,灵活运用集合框架,将帮助你更加高效地处理各种数据。
这就是 Java 集合框架的简单介绍,希望今天的学习能够为你打下一个坚实的基础。如果你有任何问题,或者想要深入了解某些部分,欢迎随时提问!
… …
文末
好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。
… …
学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!
wished for you successed !!!
⭐️若喜欢我,就请关注我叭。
⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。
版权声明:本文由作者原创,转载请注明出处,谢谢支持!
- 点赞
- 收藏
- 关注作者
评论(0)