集合框架应用一

简介: 集合框架应用一

Java集合框架是Java语言提供的一套丰富多样的数据结构和算法的实现,包括各种集合接口(如List, Set, Map等)和它们的具体实现类(如ArrayList, HashSet, HashMap等)。下面我将提供一个使用Java集合框架的简单实例,演示如何使用ListSet接口来存储和操作数据。

实例:学生信息管理

假设我们有一个学生信息管理系统,需要存储学生的姓名和年龄,并且我们想要实现以下功能:

1. 添加学生信息

2. 列出所有学生信息

3. 查找特定姓名的学生

4. 删除特定姓名的学生

首先,我们定义一个Student类来存储学生的姓名和年龄:

java复制代码

 

public class Student {

 

private String name;

 

private int age;

 

 

 

public Student(String name, int age) {

 

this.name = name;

 

this.age = age;

 

}

 

 

 

public String getName() {

 

return name;

 

}

 

 

 

public int getAge() {

 

return age;

 

}

 

 

 

@Override 

 

public String toString() {

 

return "Student{" +

 

"name='" + name + '\'' +

 

", age=" + age +

 

'}';

 

}

 

}

然后,我们创建一个StudentManager类来管理学生信息,并使用ListSet来存储学生对象:

java复制代码

 

import java.util.ArrayList;

 

import java.util.HashSet;

 

import java.util.List;

 

import java.util.Set;

 

 

 

public class StudentManager {

 

private List<Student> studentList;

 

private Set<String> studentNameSet;

 

 

 

public StudentManager() {

 

studentList = new ArrayList<>();

 

studentNameSet = new HashSet<>();

 

}

 

 

 

public void addStudent(Student student) {

 

studentList.add(student);

 

studentNameSet.add(student.getName());

 

}

 

 

 

public void listAllStudents() {

 

for (Student student : studentList) {

 

System.out.println(student);

 

}

 

}

 

 

 

public Student findStudentByName(String name) {

 

for (Student student : studentList) {

 

if (student.getName().equals(name)) {

 

return student;

 

}

 

}

 

return null;

 

}

 

 

 

public void deleteStudentByName(String name) {

 

Student student = findStudentByName(name);

 

if (student != null) {

 

studentList.remove(student);

 

studentNameSet.remove(name);

 

}

 

}

 

}

最后,我们在主函数中演示如何使用StudentManager

java复制代码

 

public class Main {

 

public static void main(String[] args) {

 

StudentManager manager = new StudentManager();

 

 

 

// 添加学生信息

 

manager.addStudent(new Student("Alice", 20));

 

manager.addStudent(new Student("Bob", 22));

 

manager.addStudent(new Student("Charlie", 21));

 

 

 

// 列出所有学生信息

 

System.out.println("所有学生信息:");

 

manager.listAllStudents();

 

 

 

// 查找特定姓名的学生

 

Student foundStudent = manager.findStudentByName("Bob");

 

if (foundStudent != null) {

 

System.out.println("找到学生: " + foundStudent);

 

} else {

 

System.out.println("未找到学生 Bob");

 

}

 

 

 

// 删除特定姓名的学生

 

manager.deleteStudentByName("Charlie");

 

System.out.println("删除 Charlie 后的学生信息:");

 

manager.listAllStudents();

 

}

 

}

这个示例演示了如何在Java中使用集合框架来管理一组学生对象。我们使用了List来维护学生的顺序,并使用Set来快速检查某个学生姓名是否已存在。ListSet都是Java集合框架中的接口,它们的实现类(如ArrayListHashSet)提供了高效的存储和检索机制。

请注意,这个示例中的findStudentByName方法并不是最高效的,因为它遍历了整个studentList来查找学生。在实际应用中,如果经常需要按姓名查找学生,可能考虑使用Map<String, Student>来存储学生信息,其中键是学生的姓名,这样查找操作就是O(1)复杂度了。

 

目录
相关文章
|
12月前
|
存储 物联网 大数据
探索阿里云 Flink 物化表:原理、优势与应用场景全解析
阿里云Flink的物化表是流批一体化平台中的关键特性,支持低延迟实时更新、灵活查询性能、无缝流批处理和高容错性。它广泛应用于电商、物联网和金融等领域,助力企业高效处理实时数据,提升业务决策能力。实践案例表明,物化表显著提高了交易欺诈损失率的控制和信贷审批效率,推动企业在数字化转型中取得竞争优势。
477 16
|
缓存 应用服务中间件 网络安全
PbootCMS增加可允许上传文件类型,例如webp、mov等文件格式扩展
PbootCMS增加可允许上传文件类型,例如webp、mov等文件格式扩展
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
Kubernetes Docker 容器
Kubernetes(K8S) 常用命令
Kubernetes(K8S) 常用命令
206 0
salt开启debug命令|4-13
salt开启debug命令|4-13
【Python-Numpy】numpy.expand_dims()的解析与使用
np.expand_dims()函数的作用,它用于在指定位置插入新轴,扩展数组的维度。
366 2
|
人工智能 算法 数据安全/隐私保护
AIGC时代下,数据要素新“风口”的机遇与挑战
【1月更文挑战第14天】AIGC时代下,数据要素新“风口”的机遇与挑战
301 1
AIGC时代下,数据要素新“风口”的机遇与挑战
|
监控 Kubernetes Java
焯!一份京东开源的微服务架构深度解析,竟让大厂人熬夜也要读完
什么是微服务,为什么需要用微服务? 一、微服务是什么? 定义:微服务是一些协同工作的小而自治的服务,这个服务是高凝聚力和松散耦合的。
|
监控 网络安全 开发工具
Ansible批量部署zabbix-agent(含zabbix-agent的yum源,zabbix自动发现和添加的界面操作)
Ansible批量部署zabbix-agent(含zabbix-agent的yum源,zabbix自动发现和添加的界面操作)
482 0
|
XML 存储 安全
jdk17文档中的JAVA SE API模块介绍
jdk17文档中的JAVA SE API模块介绍,Java SE 是jdkAPI文档中的一部分
jdk17文档中的JAVA SE  API模块介绍

热门文章

最新文章