当前位置: 首页 > news >正文

【java】集合的基本使用

集合是 Java 中用来存储一组对象的容器。与数组相比,集合更加灵活和强大,支持动态增删元素、自动扩容、多种数据结构等特性。下面我会用通俗易懂的语言解释集合的基本使用。


1. 什么是集合?

  • 集合就像是一个“容器”,可以用来装很多对象(比如数字、字符串、自定义对象等)。

  • Java 提供了多种集合类型,比如 ListSetMap,每种集合有不同的特点和用途。


2. 常用的集合类型

2.1 List(列表)
  • 特点

    • 有序(元素有固定的顺序)。

    • 允许重复元素。

    • 可以通过索引访问元素。

  • 常用实现类

    • ArrayList:基于数组实现,查询快,增删慢。

    • LinkedList:基于链表实现,增删快,查询慢。

2.2 Set(集合)
  • 特点

    • 无序(元素没有固定顺序)。

    • 不允许重复元素。

  • 常用实现类

    • HashSet:基于哈希表实现,查询和增删都快。

    • TreeSet:基于红黑树实现,元素会自动排序。

2.3 Map(映射)
  • 特点

    • 存储键值对(key-value)。

    • 键不能重复,值可以重复。

  • 常用实现类

    • HashMap:基于哈希表实现,查询和增删都快。

    • TreeMap:基于红黑树实现,键会自动排序。


3. 集合的基本操作

3.1 创建集合
  • 使用 new 关键字创建集合对象。

  • 例如:

    java

    List<String> list = new ArrayList<>(); // 创建一个 ArrayList
    Set<Integer> set = new HashSet<>();   // 创建一个 HashSet
    Map<String, Integer> map = new HashMap<>(); // 创建一个 HashMap
3.2 添加元素
  • 使用 add() 方法向 List 或 Set 中添加元素。

  • 使用 put() 方法向 Map 中添加键值对。

  • 例如:

    java

    list.add("Apple"); // 向 List 中添加元素
    set.add(10);       // 向 Set 中添加元素
    map.put("Apple", 10); // 向 Map 中添加键值对
3.3 获取元素
  • 使用 get() 方法从 List 或 Map 中获取元素。

  • 例如:

    java

    String fruit = list.get(0); // 获取 List 中第一个元素
    int price = map.get("Apple"); // 获取 Map 中键为 "Apple" 的值
3.4 删除元素
  • 使用 remove() 方法从集合中删除元素。

  • 例如:

    java

    list.remove("Apple"); // 从 List 中删除元素
    set.remove(10);       // 从 Set 中删除元素
    map.remove("Apple");  // 从 Map 中删除键值对
3.5 遍历集合
  • 使用增强型 for 循环遍历集合。

  • 例如:

    java

    for (String item : list) {
        System.out.println(item); // 遍历 List
    }
    
    for (Integer num : set) {
        System.out.println(num); // 遍历 Set
    }
    
    for (Map.Entry<String, Integer> entry : map.entrySet()) {
        System.out.println(entry.getKey() + ": " + entry.getValue()); // 遍历 Map
    }

4. 集合的常用方法

方法名作用示例
add()添加元素list.add("Apple");
remove()删除元素list.remove("Apple");
get()获取元素list.get(0);
size()获取集合大小list.size();
contains()检查是否包含元素list.contains("Apple");
clear()清空集合list.clear();
isEmpty()检查集合是否为空list.isEmpty();
keySet()获取 Map 的所有键map.keySet();
values()获取 Map 的所有值map.values();
entrySet()获取 Map 的所有键值对map.entrySet();

5. 示例代码

以下是一个完整的示例,演示集合的基本使用:

java

import java.util.*;

public class CollectionExample {
    public static void main(String[] args) {
        // List 示例
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");
        System.out.println("List: " + list);

        // Set 示例
        Set<Integer> set = new HashSet<>();
        set.add(10);
        set.add(20);
        set.add(30);
        System.out.println("Set: " + set);

        // Map 示例
        Map<String, Integer> map = new HashMap<>();
        map.put("Apple", 10);
        map.put("Banana", 20);
        map.put("Orange", 30);
        System.out.println("Map: " + map);

        // 遍历 List
        System.out.println("遍历 List:");
        for (String item : list) {
            System.out.println(item);
        }

        // 遍历 Map
        System.out.println("遍历 Map:");
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

6. 总结

  • 集合是 Java 中用来存储一组对象的容器,比数组更灵活。

  • 常用的集合类型有 ListSet 和 Map,每种集合有不同的特点。

  • 集合支持动态增删元素、自动扩容、多种数据结构等特性。

  • 掌握集合的基本操作(如添加、删除、遍历)是 Java 编程的基础。

 

对比

特性ListSetMap
有序性有序无序无序(键值对)
允许重复元素允许不允许键不允许重复,值允许
索引访问支持不支持不支持
适用场景需要有序和重复元素的场景需要去重的场景需要键值对映射的场景

 

相关文章:

  • [Linux][经验总结]Ubuntu6.11.0 docker更换镜像源(实操可用的正确方法)
  • 深入解析前后端分离架构:原理、实践与最佳方案
  • 算法手记5
  • ngx_event_conf_t
  • Qt事件处理(重写event)
  • nginx不在默认的yum仓库的解决方法
  • libstdc++ GLIBCXX_3.4.20 not found 解决方法
  • 计算机毕业设计:基于SSM理发店造型中心网上预约评价系统
  • C11标准对于C语言的内存模型的描述
  • C++ 返回值优化(Return Value Optimization)
  • 学习TensorFlow前的NumPy核心知识点
  • C++学习之二叉树
  • S32K144入门笔记(十五):ADC(转换器部分)的解读
  • windows安装Elasticsearch
  • 科普:为何要对特征进行分箱?
  • C++单例模式精解
  • OSG 和 VTK 在JS仿真中应用的更详细对比分析,包括它们的技术特点、适用场景、优缺点以及如何选择或结合使用
  • softmax回归遇到的训练集准确率小于测试集准确率的问题
  • 【MySQL】多表查询(笛卡尔积现象,联合查询、内连接、左外连接、右外连接、子查询)-通过练习快速掌握法
  • 使用 Docker 部署 MySQL 8
  • 企业推广网站有哪些/新闻发稿
  • app与小程序的区别/最新seo视频教程
  • 在线解压网站/百度投放广告联系谁
  • 东莞做网站公司有哪些/sem是什么电镜
  • 广东品牌网站建设968/网站如何进行网络推广
  • 多城市地方门户网站系统/刷赞抖音推广网站