Java集合框架初学者指南:List、Set与Map的实战训练

Java集合框架是Java语言的核心部分,它提供了丰富的类和接口,用来高效地管理和操作大量数据。这个强大的工具箱包括多种集合类型,其中最为常用的是List、Set和Map。

1.List - 有序且可重复的数据清单

概念:

List就像一个购物清单,你可以按照加入顺序存放和检索项目,而且同一个物品可以出现多次。

import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList实例,它是List接口的一个实现类
        List<String> fruits = new ArrayList<>();

        // 添加元素
        fruits.add("苹果");
        fruits.add("香蕉");
        fruits.add("苹果"); // 允许重复添加

        // 访问和修改元素
        fruits.set(1, "橙子"); // 将第二个元素替换为"橙子"

        // 输出所有元素
        System.out.println(fruits); // 输出: [苹果, 橙子, 苹果]

        // 按索引获取元素
        String firstFruit = fruits.get(0);
        System.out.println(firstFruit); // 输出: 苹果
    }
}

2.Set - 无序且唯一的元素集合

概念:

Set就像是一个不包含重复项的抽屉,你往里放东西的时候,系统会自动检查并排除已存在的元素,同时不保证元素的添加顺序。

import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        // 创建一个HashSet实例,它是Set接口的一个实现类
        Set<String> countries = new HashSet<>();

        // 添加元素
        countries.add("中国");
        countries.add("美国");
        countries.add("中国"); // 尝试添加重复元素,实际不会增加新元素

        // 输出所有元素
        System.out.println(countries); // 输出: [美国, 中国]

        // 使用contains()检查元素是否存在
        boolean hasChina = countries.contains("中国");
        System.out.println(hasChina); // 输出: true
    }
}

3.Map - 键值对映射表

概念:

Map像是一个电话簿,每个条目都有一个唯一的键和与之关联的值,键必须唯一,而值则可以重复。

import java.util.HashMap;
import java.util.Map;

public class MapExample {
    public static void main(String[] args) {
        // 创建一个HashMap实例,它是Map接口的一个实现类
        Map<String, Integer> phoneBook = new HashMap<>();

        // 添加键值对
        phoneBook.put("张三", 12345678);
        phoneBook.put("李四", 87654321);
        phoneBook.put("王五", 12345678); // 键不同,值可以重复

        // 根据键获取值
        int zhangSanPhone = phoneBook.get("张三");
        System.out.println(zhangSanPhone); // 输出: 12345678

        // 检查是否包含某个键
        boolean hasZhangSan = phoneBook.containsKey("张三");
        System.out.println(hasZhangSan); // 输出: true
    }
}

总结

Java集合框架为程序设计提供了灵活多样的数据结构支持。List适合需要保持元素顺序且可能包含重复元素的场景;Set适用于元素唯一性至关重要的情况;而Map则用于映射关系的管理,非常适合用来模拟现实世界中的各种一对一关联关系。理解并熟练运用它们,能极大地提高代码的效率和可读性。

练习

1. 创建一个List,存储一系列学生的名字,并按字母顺序排序后输出。

2. 实现一个Set,用于存储一系列整数,并确保没有重复数字。

3. 构建一个Map,存储各个城市的经纬度信息,并根据城市名查询对应的经纬度坐标。

亲爱的读者,感谢您关注与支持我的博客。您的每一份鼓励都是我前行的动力。若我的文章曾给您带来收获或启发,欢迎打赏支持。打赏款项将用于提升内容质量,为您提供更优质的阅读体验。无论结果如何,都感恩您的陪伴,让我们共同在知识的世界里探索前行!

​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/485876.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python usb与下位机 硬件通信

需求分析 上周接到一个需求 用usb和硬件连接 轮询读取usb中指定功能码的指定个数的数据并生成一个桌面程序 刚接到这个需求时 我第一时间想到的就是使用python去尝试 期间也踩了很多的坑 第一版效果如下 特此记录 环境搭建 首先第一点就是将所需要的库进行安装 这里是我这…

Springboot2 restTemplate 使用UriComponentsBuilder时编码问题

文章目录 简要说明maven依赖样例代码 简要说明 在使用springboot2的restTemplate配合UriComponentsBuilder&#xff0c;UriComponentsBuilder拿到uri字符串时有编码过程&#xff0c;而restTemplate在execute时&#xff0c;底层也是有encode编码&#xff0c;这样就到时了双重编…

基于ssm的校园驿站管理系统论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对校园快递信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差…

详解机器学习概念、算法

目录 前言 一、常见的机器学习算法 二、监督学习和非监督学习 三、常见的机器学习概念解释 四、深度学习与机器学习的区别 基于Python 和 TensorFlow 深度学习框架实现简单的多层感知机&#xff08;MLP&#xff09;神经网络的示例代码&#xff1a; 欢迎三连哦&#xff01; 前言…

LeetCode 1027——最长等差数列

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 假设我们以 f[d][nums[i]]表示以 nums[i] 为结尾元素间距为 d 的等差数列的最大长度&#xff0c;那么&#xff0c;如果 nums[i]-d 也存在于 nums 数组中&#xff0c;则有&#xff1a; f [ d ] [ n u m s [ i ] ] …

我们是如何测试人工智能的(八)包含大模型的企业级智能客服系统拆解与测试方法 -- 大模型 RAG

大模型的缺陷 -- 幻觉 接触过 GPT 这样的大模型产品的同学应该都知道大模型的强大之处&#xff0c; 很多人都应该调戏过 GPT&#xff0c;跟 GPT 聊很多的天。 作为一个面向大众的对话机器人&#xff0c;GPT 明显是鹤立鸡群&#xff0c;在世界范围内还没有看到有能跟 GPT 扳手腕…

武汉星起航引领跨境电商新纪元,助力卖家扬帆远航全球市场

在全球化的商业浪潮中&#xff0c;跨境电商行业异军突起&#xff0c;成为连接全球市场的重要纽带。亚马逊&#xff0c;作为全球零售电商的巨擘&#xff0c;为无数卖家提供了走向国际市场的广阔舞台。在这片充满机遇与挑战的蓝海中&#xff0c;武汉星起航电子商务有限公司以其独…

数字孪生技术在农业领域的应用

数字孪生技术在农业领域的应用&#xff0c;不仅能够提高农业生产的智能化水平&#xff0c;还能够促进农业资源的高效利用和农业环境的可持续发展。随着技术的不断进步和应用的深入&#xff0c;数字孪生将在农业领域发挥越来越重要的作用。数字孪生技术在农业领域的应用主要集中…

redis连接工具 windows版安装和redis命令

Redis是一个开源的使用C语言编写、支持网络、基于内存、可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 一、redis-windows版安装 在D盘符下新建个目录&#xff0c;把下载的绿色安装包放在该目录。 D:\Files Java\Redis-x64-3.2.100 解压到当前目录 …

跳蚱蜢(蓝桥杯)

文章目录 跳蚱蜢题目描述答案&#xff1a;20bfs 跳蚱蜢 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如下图所示&#xff1a; 有 9 只盘子&#xff0c;排成 1 个圆圈。 其中 8 只盘子内装着 8 只蚱蜢&#xff…

【单例测试】Mockito实战

目录 一、项目介绍二、业务代码2.1 导入依赖2.2 entity2.3 Dao2.4 业务代码 三、单元测试3.1 生成Test方法3.2 引入测试类3. 3 测试前准备3.4 测试3.4.1 name和phone参数校验3.4.2 测试数据库访问 3.4.3 数据库反例 总结 前面我们提到了《【单元测试】一文读懂java单元测试》 简…

【Redis教程0x04】详解Redis的4个高级数据类型

引言 在【Redis教程0x03】中&#xff0c;我们介绍了Redis中常用的5种基础数据类型&#xff0c;我们再来回顾一下它们的使用场景&#xff1a; String&#xff1a;存储对象、url、计数、分布式锁&#xff1b;List&#xff1a;消息队列&#xff1b;Hash&#xff1a;存储对象、购…

【Arxml专题】-29-使用Cantools将CAN Matrix Arxml自动生成C语言代码

目录 1 安装Python和Cantools 1.1 查看Python已安装的Package包 1.2 在Python中安装Cantools插件包 1.3 获取更多Cantools工具的更新动态 2 CAN Matrix Arxml自动生成C语言代码 2.1 批处理文件CAN_Matrix_Arxml_To_C.bat内容说明 2.2 CAN Matrix Arxml文件要求 2.3 如何…

JAVA 学习记录(1)

1.函数 (1)String.join(";", messages); ";" 表示分隔符&#xff0c;输出的结果&#xff1a; message; (2) Double.parseDouble(valueString); 它返回由字符串参数表示的双精度值。 (3) Double.valueOf((Float) value; float 类型的数值转化为double类…

UG NX二次开发(C#)-通过曲线组生成NURBS曲面

文章目录 1、前言2、UG NX中通过曲线组生成NURBS曲面的操作3、采用NXOpen C#方法的源代码1、前言 在UG NX中,曲线、曲面的操作使用比较多,对于创建NURBS曲面,可以通过曲线组来生成,本文以NXOpen C#的方法实现通过曲线组生成NURBS曲面的功能。对于UG NX二次开发感兴趣或者有…

-bash: ./1.sh: /bin/bash^M: bad interpreter: No such file or directory解决方法

1、执行脚本 ./1.sh时报如下错误 -bash: ./1.sh: /bin/bash^M: bad interpreter: No such file or directory 2、在Windows编辑的脚本导入Linux系统中&#xff0c;执行报错问题 yum install -y dos2unix 3、或者本地安装 rpm -ivh /mnt/Packages/dos...... 4、然…

springboot 中Aop注解切面实现收集日志与统计耗时2

一 Aop注解实现切面 1.1 工程结构 Before&#xff1a;前置通知, 在方法执行之前执行 Aroud&#xff1a;环绕通知, 围绕着方法执行 After&#xff1a;后置通知, 在方法执行之后执行 AfterReturning&#xff1a;返回通知, 在方法返回结果之后执行 AfterThrowing&#xff1a;异…

【软考高项】十七、项目管理概论之项目基本要素

1、项目基础 项目具备的一些要素&#xff1a; 1&#xff09;独特的产品、服务或成果 开展项目是为了通过可交付成果达成目标。 ◆ 目标 是所指向的结果、要取得的战略地位、要达到的目的、要获得的成果、要生产 的产品或者要提供的服务 ◆ 可交付成果 是指在某一过程、阶…

【STK】手把手教你利用STK进行导弹和反导仿真01 - STK/MMT模块安装部署

【STK】手把手教你利用STK进行导弹和反导仿真01 - STK/MMT模块安装部署 MMT模块与STK的版本是一一对应的,比如我现在手上的版本是MMT9的,那么我使用的STK的版本也必须是9版本的,如果你现在正在使用的是更高版本的STK,比如说10、11.2、11.6、12.2,那么该怎么办呢? 这个经本…

基于ssm的学生选课管理系统的设计与实现

一、功能介绍 管理员功能分析 1、管理员用户可以查询所有学生信息&#xff0c;也可以根据学生的学号、学院、专业、班级查询学生信息。可以修改学生的姓名、年龄、身份证号、性别、密码、专业、学院、班级&#xff0c;可以增加、删除学生 2、管理员用户可以查询所有教师信息&…