新闻中心

J*a初学者如何做通讯录管理项目_对象集合与搜索功能整合

2025-12-04
浏览次数:
返回列表
首先设计Contact类管理联系人信息,再用ArrayList存储多个联系人对象,通过遍历集合实现按姓名关键字搜索功能,结合类、对象、集合、循环与条件判断完成通讯录核心功能。

java初学者如何做通讯录管理项目_对象集合与搜索功能整合

刚开始学J*a的同学做通讯录项目时,最核心的就是学会用对象管理数据、用集合存联系人、再通过搜索快速查找。这个过程能帮你把类、对象、List、循环和条件判断这些基础知识点串起来。下面一步步讲清楚怎么做。

设计联系人类(Contact)

每个联系人是一个对象,包含姓名、电话、邮箱等信息。先定义一个类来描述它。

class Contact {
    private String name;
    private String phone;
    private String email;

    public Contact(String name, String phone, String email) {
        this.name = name;
        this.phone = phone;
        this.email = email;
    }

    // getter方法,方便外部访问属性
    public String getName() { return name; }
    public String getPhone() { return phone; }
    public String getEmail() { return email; }

    @Override
    public String toString() {
        return "姓名:" + name + ",电话:" + phone + ",邮箱:" + email;
    }
}

用ArrayList存储多个联系人

所有联系人都放进一个集合里,用ArrayList最合适,增删查都很方便。

使用 ArrayList 来保存对象列表:

import j*a.util.ArrayList;

public class AddressBook {
    private ArrayList contacts = new ArrayList();

    // 添加联系人
    public void addContact(Contact contact) {
        contacts.add(contact);
    }

    // 显示全部联系人
    public void showAll() {
        for (Contact c : contacts) {
            System.out.println(c);
        }
    }
}

实现按姓名搜索功能

用户输入名字的一部分,程序遍历集合查找匹配的联系人。

搜索逻辑写在AddressBook类中:

Tunee AI Tunee AI

新一代AI音乐智能体

Tunee AI 1104 查看详情 Tunee AI

// 按姓名关键字搜索
public void searchByName(String keyword) {
    boolean found = false;
    for (Contact c : contacts) {
        if (c.getName().contains(keyword)) {
            System.out.println(c);
            found = true;
        }
    }
    if (!found) {
        System.out.println("未找到包含 '" + keyword + "' 的联系人");
    }
}

主程序调用示例

写个main方法测试整个流程:

public static void main(String[] args) {
    AddressBook book = new AddressBook();

    // 添加几个测试数据
    book.addContact(new Contact("张三", "13800001111", "zhang@qq.com"));
    book.addContact(new Contact("李四", "13800002222", "li@qq.com"));
    book.addContact(new Contact("王小三", "13800003333", "wang@qq.com"));

    // 查看全部
    book.showAll();

    // 搜索名字含“三”的
    System.out.println("\n搜索“三”:");
    book.searchByName("三");
}

运行后你会看到所有名字带“三”的联系人都被打印出来,说明搜索成功。

基本上就这些。掌握好类的设计、ArrayList存对象、遍历查找这三个点,通讯录的核心功能就有了。后面可以加删除、修改、按电话搜索等功能,都是在这个基础上扩展。不复杂但容易忽略细节,比如getter方法没写就取不到值,或者contains用成了equals导致搜不出部分匹配的内容。

以上就是J*a初学者如何做通讯录管理项目_对象集合与搜索功能整合的详细内容,更多请关注其它相关文章!


# 成了  # seo的主要问题  # 潼南区的网站建设高端  # 临沂 网站排名优化推广  # 衡阳网站建设开发电话  # 秦皇岛营销网站推广优势  # 浙江网站怎么推广文章  # 苏州虚拟网站建设哪里有  # 抖音seo招代理  # 实践者全域营销推广  # seo301定向问题  # 你会  # 不出  # java  # 几个  # 是一个  # 都是  # 多个  # 如何做  # 遍历  # 搜索功能  # 邮箱  # ai  # qq  # word  # 通讯录管理 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: PostgreSQL海量数据高效导入策略:Python与Django实践指南  利用Bokeh CustomJS动态控制DataTable列可见性  Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口  圆通快递查询实时追踪 圆通物流包裹状态快速查看  夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案  KFC套餐升级怎么获取优惠代码_KFC套餐升级活动与优惠代码获取方法  Go语言中JSON数据解码与字段访问指南  微信网页版官方快速登录入口 微信网页版网页版账号直达  C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器  Fabric模组开发:自定义物品与物品组的现代管理方法  Python大型XML文件高效流式解析教程  如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension  如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力  php源码怎么看淘宝客系统_看php源码淘宝客系统技巧  sublime怎么进行远程开发编辑_配置rsub/rmate实现sublime编辑服务器文件  J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南  QQ邮箱登录官网首页 腾讯QQ邮箱网页入口  如何在Promise链中有效终止错误处理后的执行  大象笔记网页版入口 印象笔记网页版登录入口  Angular响应式表单:实现提交后表单及按钮的禁用与只读化  Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  J*aScript数组对象转换:按指定键分组与值收集  PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符  解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException  搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具  如何在网页中实现特定地点的随机图片展示  React项目中导航栏Logo自适应布局:避免裁剪与布局溢出  漫蛙漫画登录站点 漫蛙2正版漫画快速访问  qq游戏跨平台入口_qq游戏多设备同步登录  海量存储:机器视觉智能化的核心基石  mysql如何设置表访问权限_mysql表访问权限配置  随机参数递归函数的基准调用次数与时间复杂度探究  Golang如何使用const iota_Go iota常量计数器讲解  创客贴用户入口官网登录 创客贴网页版电脑版系统  如何使用 Excel 发布器与 Power BI 分享 Excel 洞察  Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录  LINUX下如何进行磁盘分区_fdisk与parted工具在LINUX中的使用对比  如何仅使用CSS更改登录界面背景图像图标的颜色  批改网学生版PC登录 批改网官网登录系统入口  服务端验证_j*ascript输入检查  Win10怎么制作U盘启动盘 Win10系统安装U盘制作教程【详解】  如何在CSS中使用浮动制作导航栏_float实现水平菜单  AWS EC2实例间SQL Server连接超时:安全组配置与故障排除指南  小红书怎么解除第三方平台绑定_小红书多平台登录解绑方法介绍  如何将一个大型PHP应用拆分为多个Composer包_微服务与模块化架构的Composer实践  composer的"require-dev"部分是用来做什么的?  C++如何进行游戏物理模拟_使用Box2D库为C++游戏添加2D物理效果  163邮箱网页版入口导航平台 163邮箱网页版登录入口官网导航  J*aScript打印功能_j*ascript输出控制  凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法 

搜索