Java学习指南:集合框架!

举报
喵手 发表于 2025/03/19 18:12:05 2025/03/19
【摘要】 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,...

开篇语

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

  在 Java 中,集合框架是非常重要的一个部分,几乎在每个 Java 应用程序中都会使用到集合类。无论是存储数据,还是对数据进行操作,集合类都能够提供强大的支持。今天,我们就来深入学习 Java 的集合框架,了解它的基本概念和常用类。

1. 什么是集合框架?

  集合框架是 Java 提供的一套用于存储和操作数据的类和接口的集合。它包括了几种不同类型的集合,可以用于不同的数据存储需求,支持动态的数据存储。

  Java 集合框架的核心接口有:

  • Collection:是所有集合类的根接口,定义了集合的基本操作。
  • ListSetQueue:是继承自 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. 集合的性能

  在选择具体的集合类时,我们需要考虑性能方面的问题。比如,HashSetHashMap 在元素查找时的时间复杂度是 O(1),而 TreeSetTreeMap 的查找时间复杂度是 O(log n),所以如果对元素顺序有要求并且需要快速查找,TreeSetTreeMap 可能是更好的选择。

6. 总结

  今天我们了解了 Java 集合框架的基础知识,掌握了 List、Set、Queue 和 Map 这些常见集合类的使用方法。集合框架为我们提供了丰富的功能来存储和操作数据,选择合适的集合类能够提高程序的效率和可维护性。在今后的开发过程中,灵活运用集合框架,将帮助你更加高效地处理各种数据。

  这就是 Java 集合框架的简单介绍,希望今天的学习能够为你打下一个坚实的基础。如果你有任何问题,或者想要深入了解某些部分,欢迎随时提问!

… …

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

… …

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。


版权声明:本文由作者原创,转载请注明出处,谢谢支持!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。