import java.util.ArrayList;
import java.util.List;
public class URLPaginator {
private final List<String> urls;
private final int pageSize;
private int currentPage;
public URLPaginator(List<String> urls, int pageSize) {
this.urls = urls;
this.pageSize = pageSize;
this.currentPage = 1;
}
public List<String> getPage() {
if (urls == null || urls.isEmpty()) {
return new ArrayList<>(); // Return empty list if no URLs
}
int startIndex = (currentPage - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, urls.size()); //Prevent index out of bounds
List<String> page = new ArrayList<>();
for (int i = startIndex; i < endIndex; i++) {
page.add(urls.get(i));
}
return page;
}
public int getCurrentPage() {
return currentPage;
}
public int getPageSize() {
return pageSize;
}
public int getTotalPages() {
return (int) Math.ceil((double) urls.size() / pageSize);
}
public void nextPage() {
currentPage++;
}
public void previousPage() {
currentPage--;
if (currentPage < 1) {
currentPage = 1;
}
}
public static void main(String[] args) {
// Example Usage
List<String> urls = new ArrayList<>();
for (int i = 1; i <= 25; i++) {
urls.add("http://example.com/page" + i);
}
URLPaginator paginator = new URLPaginator(urls, 5);
//Dry-run mode - just print pages, don't modify state
for (int i = 1; i <= 3; i++) {
List<String> page = paginator.getPage();
System.out.println("Page " + i + ": " + page);
}
}
}
Add your comment