Java实现简易待办事项列表

简介: Java实现简易待办事项列表

待办事项列表是日常工作和生活中重要的工具,Java作为一种广泛使用的编程语言,可以方便地实现待办事项列表的功能。本文将介绍如何使用Java实现一个简易的待办事项列表,包括事项的添加、删除、完成和查看等功能。文章最后将提供完整代码和运行结果。


关键词:Java;待办事项;添加;删除;完成;查看

1. 引言

待办事项列表在个人和团队工作中起着重要的作用,它可以帮助我们管理日常任务,提高工作效率。使用Java实现一个简易的待办事项列表,不仅可以方便地添加、删除和完成事项,还可以查看所有事项。本文将介绍如何使用Java实现这样一个待办事项列表。

2. 待办事项列表功能设计

本文设计的简易待办事项列表将实现以下功能:

1)事项添加:用户可以输入新的待办事项;

2)事项删除:用户可以输入要删除的事项;

3)事项完成:用户可以输入要完成的事项;

4)查看所有事项:列出所有待办事项,包括已完成和未完成的事项。

3. Java实现待办事项列表

3.1 引入包

首先,我们需要引入Java的标准库,以便使用基本的输入输出和集合操作。

import java.util.ArrayList;
import java.util.Scanner;

3.2 定义待办事项类

我们定义一个名为TodoItem的类,用于存储待办事项的属性。

public class TodoItem {
   private String description;
   private boolean isCompleted;
   public TodoItem(String description) {
       this.description = description;
       this.isCompleted = false;
    }
   // getters and setters
   public String getDescription() {
       return description;
    }
   public void setDescription(String description) {
       this.description = description;
    }
   public boolean isCompleted() {
       return isCompleted;
    }
   public void setCompleted(boolean completed) {
       isCompleted = completed;
    }
   @Override
   public String toString() {
       return isCompleted ? "[x] " : "[ ] ";
    }
}

3.3 定义待办事项列表类

我们定义一个名为TodoList的类,用于实现待办事项列表的功能。

import java.util.ArrayList;
import java.util.Scanner;
public class TodoList {
   private ArrayList<TodoItem> items;
   public TodoList() {
       this.items = new ArrayList<>();
    }
   public void addItem(TodoItem item) {
       items.add(item);
    }
   public void removeItem(String description) {
       items.removeIf(item -> item.getDescription().equals(description));
    }
   public void completeItem(String description) {
       for (TodoItem item : items) {
           if (item.getDescription().equals(description)) {
                item.setCompleted(true);
                break;
           }
       }
    }
   public void displayItems() {
       for (TodoItem item : items) {
           System.out.println(item);
       }
    }
}

3.4 主函数

在主函数中,我们创建一个待办事项列表实例,并调用相应的方法来演示系统的功能。

public class Main {
   public static void main(String[] args) {
       TodoList todoList = new TodoList();
       Scanner scanner = new Scanner(System.in);
       while (true) {
           System.out.println("简易待办事项列表");
           System.out.println("1. 添加事项");
           System.out.println("2. 删除事项");
           System.out.println("3. 完成事项");
           System.out.println("4. 查看所有事项");
           System.out.println("5. 退出");
           int choice = scanner.nextInt();
           scanner.nextLine(); // 清除缓冲区
           switch (choice) {
                case 1:
                    System.out.println("请输入新事项
目录
相关文章
|
6月前
|
Java Spring
【Java专项刷题】给伙伴们聊一下刷题事项
【Java专项刷题】给伙伴们聊一下刷题事项
|
11月前
java202304java学习笔记第六十四天-ssm-aop开发明确的事项和知识要点
java202304java学习笔记第六十四天-ssm-aop开发明确的事项和知识要点
45 0
|
Java 数据格式
02 Java自增自减&数据类型转换的6个事项
注意点 1 自增、自减只针对变量,(常量不可用) a++、++a或者a- -、- -a在运算中等同于: a = a+1;或者 a= a-1; 如果此处是常量如: 3 = 3+1,常量是不允许赋值的。所以自增、自减只针对变量
69 0
|
Java
【Java学习笔记】数组的相关事项
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.声明数组引用变量时不能指定数组的长度。如:int x[1];这句话非法。 2.数组对象的创建,例如: int [] scores = new int[100]; 首先在堆中分配内存空间,上述的就是400个字节,然后就给其赋默认值,各个数据类型的默认值不同,int为0.
729 0
|
4天前
|
Java 测试技术
Java多线程的一些基本例子
【5月更文挑战第17天】Java多线程允许并发执行任务。示例1展示创建并启动两个`MyThread`对象,各自独立打印&quot;Hello World&quot;。示例2的`CounterExample`中,两个线程(IncrementThread和DecrementThread)同步地增加和减少共享计数器,确保最终计数为零。这些例子展示了Java线程的基本用法,包括线程同步,还有如Executor框架和线程池等更复杂的用例。
11 0
|
4天前
|
缓存 安全 Java
7张图带你轻松理解Java 线程安全,java缓存机制面试
7张图带你轻松理解Java 线程安全,java缓存机制面试
|
2天前
|
Java
Java一分钟之-并发编程:线程间通信(Phaser, CyclicBarrier, Semaphore)
【5月更文挑战第19天】Java并发编程中,Phaser、CyclicBarrier和Semaphore是三种强大的同步工具。Phaser用于阶段性任务协调,支持动态注册;CyclicBarrier允许线程同步执行,适合循环任务;Semaphore控制资源访问线程数,常用于限流和资源池管理。了解其使用场景、常见问题及避免策略,结合代码示例,能有效提升并发程序效率。注意异常处理和资源管理,以防止并发问题。
25 2
|
2天前
|
安全 Java 容器
Java一分钟之-并发编程:线程安全的集合类
【5月更文挑战第19天】Java提供线程安全集合类以解决并发环境中的数据一致性问题。例如,Vector是线程安全但效率低;可以使用Collections.synchronizedXxx将ArrayList或HashMap同步;ConcurrentHashMap是高效线程安全的映射;CopyOnWriteArrayList和CopyOnWriteArraySet适合读多写少场景;LinkedBlockingQueue是生产者-消费者模型中的线程安全队列。注意,过度同步可能影响性能,应尽量减少共享状态并利用并发工具类。
17 2
|
2天前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第19天】多线程编程是Java中的一个重要概念,它允许程序员在同一时间执行多个任务。本文将介绍Java多线程的基础知识,包括线程的创建、启动和管理,以及如何通过多线程提高程序的性能和响应性。