1
- import java .io .*;
2
1
import java .util .ArrayList ;
2
+ import java .io .*;
3
3
4
- /**
5
- * ToDoListManager is responsible for managing the to-do list tasks,
6
- * including adding, removing, completing, and persisting tasks.
7
- */
8
-
9
- public class TodoListManager {
10
- private ArrayList <String > tasks ;
4
+ public class TodoListManager <T > {
5
+ private ArrayList <T > tasks ;
11
6
12
7
public TodoListManager () {
13
8
tasks = new ArrayList <>();
14
9
}
15
10
16
- // Add task to the list
17
- public void addTask (String task ) {
11
+ public void addTask (T task ) {
18
12
tasks .add (task );
19
13
System .out .println ("Task added: " + task );
20
14
}
21
15
22
- // View all tasks
23
- public void viewTasks (){
24
- System .out .println ("Your To-Do- List:" );
25
- for (int i = 0 ; i < tasks .size (); i ++) {
26
- System .out .println ((i + 1 ) + ". " + tasks .get (i ));
16
+ public void viewTasks () {
17
+ if (tasks .isEmpty ()) {
18
+ System .out .println ("No tasks in the list." );
19
+ } else {
20
+ for (int i = 0 ; i < tasks .size (); i ++) {
21
+ System .out .println ((i + 1 ) + ". " + tasks .get (i ));
22
+ }
27
23
}
28
24
}
29
25
30
- // Remove a task by index
31
26
public void removeTask (int index ) {
32
27
if (index >= 1 && index <= tasks .size ()) {
33
- String removedTask = tasks .remove (index - 1 );
34
- System . out . println ( "Task removed: " + removedTask );
28
+ System . out . println ( "Task removed: " + tasks .get (index - 1 ) );
29
+ tasks . remove ( index - 1 );
35
30
} else {
36
31
System .out .println ("Invalid task number." );
37
32
}
38
33
}
39
34
40
- // Complete a task
41
35
public void completeTask (int index ) {
42
36
if (index >= 1 && index <= tasks .size ()) {
43
37
System .out .println ("Task completed: " + tasks .get (index - 1 ));
44
- tasks .remove (index - 1 ); // Remove the task after completion
38
+ tasks .remove (index - 1 );
45
39
} else {
46
40
System .out .println ("Invalid task number." );
47
41
}
48
42
}
49
43
50
- // Save tasks to a file
51
44
public void saveTasksToFile (String filename ) {
52
45
try (FileWriter writer = new FileWriter (filename )) {
53
- for (String task : tasks ) {
54
- writer .write (task + "\n " );
46
+ for (T task : tasks ) {
47
+ writer .write (task . toString () + "\n " );
55
48
}
56
49
System .out .println ("Tasks saved to " + filename );
57
50
} catch (IOException e ) {
58
51
System .out .println ("Error saving tasks: " + e .getMessage ());
59
52
}
60
53
}
61
54
62
- // Load tasks from a file
63
55
public void loadTasksFromFile (String filename ) {
64
56
try (BufferedReader reader = new BufferedReader (new FileReader (filename ))) {
65
57
String task ;
66
58
while ((task = reader .readLine ()) != null ) {
67
- tasks .add (task );
59
+ // This will need casting depending on the task type
60
+ System .out .println ("Task loaded: " + task );
68
61
}
69
- System .out .println ("Tasks loaded from " + filename );
70
62
} catch (IOException e ) {
71
63
System .out .println ("Error loading tasks: " + e .getMessage ());
72
64
}
73
65
}
74
- }
75
-
76
-
66
+ }
0 commit comments