Xem xét vấn đề, trong đó tôi đang phát triển một cây như Bộ sưu tập.Bộ sưu tập lười biếng trong Java
Một trong những chức năng chính của Bộ sưu tập của tôi là để theo dõi tất cả các mục được lưu trữ từng người một và sau đó gọi một chức năng nhất định cho từng hạng mục cho đến khi một tiêu chí được đưa đã được đáp ứng (lười biếng Collection).
Vì vậy, các chức năng cần phải có chữ ký sau đây:
void Trace(function func, criteria crit)
{
item i = firstItem();
while (i != endItem())
{
i = nextItem();
func(i);
if (crit(i))
return;
}
}
trong C++
con trỏ chức năng có thể được sử dụng cho func
và crit
.
trong số C#
, yield
từ khóa chính xác là giải pháp cho vấn đề này, tôi tin.
Làm cách nào để có được điều tương tự trong Java?
Vòng lặp của bạn có lỗi. Nó không xử lý phần tử cuối cùng. Xem xét danh sách nếu độ dài 1 - vòng lặp while sẽ không được nhập. – Bohemian
Điểm tốt :) Nhưng may thay, điều đó không liên quan gì đến vấn đề này :) – MBZ