11
11
import java .util .List ;
12
12
import java .util .Iterator ;
13
13
14
- // Lớp Book chứa thông tin về một cuốn sách ( tên sách, tác giả)
15
- class Book {
16
- String title ;
17
- String author ;
18
-
19
- Book (String title , String author ) {
20
- this .title = title ;
21
- this .author = author ;
14
+ // Lớp Friend chứa thông tin về một người bạn, bao gồm tên và địa chỉ.
15
+ class Friend {
16
+ private String name ;
17
+ private String address ;
18
+
19
+ public Friend (String name , String address ) {
20
+ this .name = name ;
21
+ this .address = address ;
22
22
}
23
23
24
24
@ Override
25
25
public String toString () {
26
- return title + " by " + author ;
26
+ return "Friend [name=" + name + ", address=" + address + "]" ;
27
27
}
28
28
}
29
29
30
- // Lớp BookList chứa một danh sách các cuốn sách .
31
- class BookList {
32
- private List <Book > books = new ArrayList <>();
30
+ // Lớp FriendList chứa danh sách các người bạn .
31
+ class FriendList {
32
+ private List <Friend > friends = new ArrayList <>();
33
33
34
- public void addBook ( Book book ) {
35
- books .add (book );
34
+ public void addFriend ( Friend friend ) {
35
+ friends .add (friend );
36
36
}
37
37
38
38
public int getSize () {
39
- return books .size ();
39
+ return friends .size ();
40
40
}
41
41
42
- // Nội lớp cung cấp iterator để duyệt qua danh sách các cuốn sách .
43
- public class BookIterator implements Iterator <Book > {
42
+ // Nội lớp cung cấp iterator để duyệt qua danh sách các người bạn .
43
+ public class FriendIterator implements Iterator <Friend > {
44
44
private int index = 0 ;
45
45
46
46
@ Override
47
47
public boolean hasNext () {
48
- return index < books .size ();
48
+ return index < friends .size ();
49
49
}
50
50
51
51
@ Override
52
- public Book next () {
53
- return books .get (index ++);
52
+ public Friend next () {
53
+ return friends .get (index ++);
54
54
}
55
55
}
56
56
57
- public BookIterator getIterator () {
58
- return new BookIterator ();
57
+ public FriendIterator getIterator () {
58
+ return new FriendIterator ();
59
59
}
60
60
61
61
// Sử dụng nội lớp vô danh để tạo một Iterator mới mà không cần phải tạo lớp
62
62
// mới.
63
- public Iterator <Book > getReverseIterator () {
64
- return new Iterator <Book >() {
65
- private int index = books .size () - 1 ;
63
+ public Iterator <Friend > getReverseIterator () {
64
+ return new Iterator <Friend >() {
65
+ private int index = friends .size () - 1 ;
66
66
67
67
@ Override
68
68
public boolean hasNext () {
69
69
return index >= 0 ;
70
70
}
71
71
72
72
@ Override
73
- public Book next () {
74
- return books .get (index --);
73
+ public Friend next () {
74
+ return friends .get (index --);
75
75
}
76
76
};
77
77
// Đây là một nội lớp vô danh, không có tên, được khai báo và khởi tạo ngay
@@ -81,24 +81,25 @@ public Book next() {
81
81
82
82
public class AnonymousInnerClass {
83
83
public static void main (String [] args ) {
84
- BookList myList = new BookList ();
84
+ FriendList myList = new FriendList ();
85
85
86
- myList .addBook (new Book ("The Alchemist" , "Paulo Coelho" ));
87
- myList .addBook (new Book ("The Little Prince" , "Antoine de Saint-Exupéry" ));
88
- myList .addBook (new Book ("The Da Vinci Code" , "Dan Brown" ));
86
+ // Thêm các người bạn vào danh sách.
87
+ myList .addFriend (new Friend ("Alice" , "USA" ));
88
+ myList .addFriend (new Friend ("Bob" , "UK" ));
89
+ myList .addFriend (new Friend ("Carol" , "France" ));
89
90
90
91
System .out .println ("--Book list:" );
91
92
92
93
// Sử dụng Iterator để duyệt qua danh sách các cuốn sách.
93
- BookList . BookIterator iterator = myList .getIterator ();
94
+ Iterator < Friend > iterator = myList .getIterator ();
94
95
while (iterator .hasNext ()) {
95
96
System .out .println (iterator .next ());
96
97
}
97
98
98
99
System .out .println ("\n --Book list in reverse order:" );
99
100
100
101
// Sử dụng Iterator để duyệt qua danh sách các cuốn sách theo thứ tự ngược lại.
101
- Iterator <Book > reverseIterator = myList .getReverseIterator ();
102
+ Iterator <Friend > reverseIterator = myList .getReverseIterator ();
102
103
while (reverseIterator .hasNext ()) {
103
104
System .out .println (reverseIterator .next ());
104
105
}
0 commit comments