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

news2024/9/24 21:23:21

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,存储各个城市的经纬度信息,并根据城市名查询对应的经纬度坐标。

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

​​​​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt程序可执行文件打包

目录 一、新建一个目录二、命令行2.1 添加临时变量2.2 打包命令 三、添加动态库四、普通 Qt 项目打包 Qml 项目打包 笔者写的python程序打包地址&#xff08;https://blog.csdn.net/qq_43700779/article/details/136994813&#xff09; 一、新建一个目录 新目录(例如test)用以…

Spring Boot整合Spring Security

Spring Boot 专栏&#xff1a;Spring Boot 从零单排 Spring Cloud 专栏&#xff1a;Spring Cloud 从零单排 GitHub&#xff1a;SpringBootDemo Gitee&#xff1a;SpringBootDemo Spring Security是针对Spring项目的安全框架&#xff0c;也是Spring Boot底层安全模块的默认技术…

基于springboot+vue+Mysql的留守儿童爱心网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

学习周报:文献阅读+Fluent案例+水力学理论学习

目录 摘要 Abstract 文献阅读&#xff1a; 文献摘要 现有问题 研究目的及方法 PINN的设置 NS方程介绍 损失函数 训练方法 实验设置 对照组设置 实验结果展示 点云数、隐藏层数和每个隐藏层的节点数对PINN精度的影响 点云数对PINN的影响&#xff1a; 隐藏层数的影…

Kruskal最小生成树【详细解释+动图图解】【sort中的cmp函数】 【例题:洛谷P3366 【模板】最小生成树】

文章目录 Kruskal算法简介Kruskal算法前置知识sort 中的cmp函数 算法思考样例详细示范与解释kruskal模版code↓ 例题&#xff1a;洛谷P3366 【模板】最小生成树code↓完结撒花QWQ Kruskal算法简介 K r u s k a l Kruskal Kruskal 是基于贪心算法的 M S T MST MST 算法&#xff…

探索国内ip切换App:打破网络限制

在国内网络环境中&#xff0c;有时我们会遇到一些限制或者屏蔽&#xff0c;使得我们无法自由访问一些网站或服务。而国内IP切换App的出现&#xff0c;为解决这些问题提供了非常便捷的方式。这些App可以帮助用户切换IP地址&#xff0c;让用户可以轻松地访问被限制或屏蔽的网站&a…

【计算机考研】 跨考408全年复习规划+资料分享

跨专业备考计算机考研408&#xff0c;确实是一项挑战。在有限的时间内&#xff0c;我们需要合理安排时间&#xff0c;制定有效的学习计划&#xff0c;做到有效地备考。回顾我之前对408的经验&#xff0c;我想分享一些备考计划和方法。 要认清自己的起点。作为跨专业考生&#…

AI Infra论文阅读之《在LLM训练中减少激活值内存》

写了一个Megatron-LM的3D Parallel进程组可视化的Playground&#xff0c;界面长下面这样&#xff1a; 可以直接访问&#xff1a;https://huggingface.co/spaces/BBuf/megatron-lm-parallel-group-playground 脚本也开源在&#xff1a;https://github.com/BBuf/megatron-lm-par…

Linux部署seata-2.x整合SpringCloud使用(Nacos实现配置与注册中心)

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; Linux部署seata-2.x整合SpringCloud使用(Nacos实现配置与注册中心) ⏱️…

Request请求参数----中文乱码问题

一: GET POST获取请求参数: 在处理为什么会出现中文乱码的情况之前, 首先我们要直到GET 以及 POST两种获取请求参数的不同 1>POST POST获取请求参数是通过输入流getReader来进行获取的, 通过字符输入流来获取响应的请求参数, 并且在解码的时候, 默认的情况是 ISO_885…

Elasticsearch:虚拟形象辅助和对话驱动的语音到 RAG 搜索

作者&#xff1a;来自 Elastic Sunile Manjee 搜索的演变 搜索已经从产生简单结果的简单文本查询发展成为容纳文本、图像、视频和问题等各种格式的复杂系统。 如今的搜索结果通过生成式人工智能、机器学习和交互式聊天功能得到增强&#xff0c;提供更丰富、更动态且与上下文相…

一张表看懂阿里云服务器优惠价格表(CPU内存价格+带宽费用+磁盘价格)

2024年腾讯云服务器优惠价格表&#xff0c;一张表整理阿里云服务器最新报价&#xff0c;阿里云服务器网整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单&#xff0c;大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新的云服务器优惠券…

【Redis】Redis特性

Redis 认识redisRedis特性在内存中存储数据可编程可扩展性持久化Clustering高可用性 认识redis Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志…

Window全网解析网站下载视频

全网解析网站下载视频 介绍m3u8格式cbox格式 解析视频下载的方法方法一解析视频下载视频 方法二老王浏览器下载使用浏览器解析下载视频 总结 介绍 今天分享一下如何解析网页中的视频进行下载。通常情况下我们打开的某某网站的视频是不提供下载接口的&#xff0c;甚至说你下载了…

Verilog刷题笔记45

题目&#xff1a;Given the finite state machine circuit as shown, assume that the D flip-flops are initially reset to zero before the machine begins. Build this circuit. 解题&#xff1a; module top_module (input clk,input x,output z ); wire [2:0]size;dtou…

性能测试丨GreatSQL TPC-H 性能测试报告正式发布!

1、测试背景概述 本次测试针对GreatSQL开源数据库基于标准 TPC-H 场景的测试。 TPC-H&#xff08;商业智能计算测试&#xff09;是美国交易处理效能委员会&#xff08;TPC&#xff0c;TransactionProcessing Performance Council&#xff09;组织制定的用来模拟决策支持类应用…

StarRocks 助力金融营销数字化进化之路

作者&#xff1a;平安银行 数据资产中心数据及 AI 平台团队负责人 廖晓格 平安银行五位一体&#xff0c;做零售金融的领先银行&#xff0c;五位一体是由开放银行、AI 银行、远程银行、线下银行、综合化银行协同构建的数据化、智能化的零售客户经营模式&#xff0c;这套模式以数…

37、Linux中Xsync数据同步备份工具

37、Linux中Xsync数据同步备份工具 一、介绍二、配置集群hostname三、修改xsync文件四、赋权五、安装Rsync六、验证一七、配置免密登录1、生成rsa密钥2、copy机器自身公钥到目标机器3、.ssh/文件目录赋权 八、验证二 ⚠️ 注&#xff1a;本文全程在普通用户下操作&#xff0c;…

设计模式之建造者模式详解

建造者模式 1&#xff09;概述 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 1.复杂对象 复杂对象是指包含多个成员属性的对象。 2.结构图 Builder&#xff08;抽象建造者&#xff09;&#xff1a;它为创建一个产品Product对象…

项目2-用户登录

1.创建项目 2.引入前端代码并检查是否有误 3.定义接口 需求分析 对于后端开发⼈员⽽⾔, 不涉及前端⻚⾯的展⽰, 只需要提供两个功能 1. 登录⻚⾯: 通过账号和密码, 校验输⼊的账号密码是否正确, 并告知前端 2. ⾸⻚: 告知前端当前登录⽤⼾. 如果当前已有⽤⼾登录, 返回登录的账…