Java迭代器實現(xiàn)Python中的range代碼實例
如果要想迭代一個類的對象,那么該類必須實現(xiàn) Iterable 接口,然后通過 iterator 方法返回一個 Iterator 實例。
Range 類實現(xiàn)了Python中的range的所有用法,如:range(10),range(5, 10),range(10, 0, -1),range(0, 10, 2)
如果再在 Range 類中定義靜態(tài)的工廠方法,然后再靜態(tài)導入工廠方法,就可以更方便地使用了。
使用實例:
for (int x : new Range(10, 0, -1)) {
System.out.println(x);
}
/* 輸出:
10
9
8
7
6
5
4
3
2
1
*/
代碼:
class Range implements Iterable<Integer> {
private final int start;
private final int end;
private final int step;
public Range(int end) {
this(0, end, 1);
}
public Range(int start, int end) {
this(start, end, 1);
}
public Range(int start, int end, int step) {
this.start = start;
this.end = end;
this.step = step;
}
@Override
public Iterator<Integer> iterator() {
return new Itr();
}
private class Itr implements Iterator<Integer> {
int current = start;
@Override
public boolean hasNext() {
return step > 0 ? current < end : current > end;
}
@Override
public Integer next() {
int t = current;
current += step;
return t;
}
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
IDEA2020.3創(chuàng)建web工程的完整步驟
這篇文章主要給大家介紹了關于IDEA2020.3創(chuàng)建web工程的完整步驟,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
SpringBoot多模塊打包部署Docker的項目實戰(zhàn)
本文通過介紹最常見的Maven管理的Spring Boot項目多模塊打包部署Docker來介紹一下項目部署過程中操作流程和幾個需要注意的點,具有一定的參加價值,感興趣的可以了解一下2023-08-08
SpringBoot3實現(xiàn)Gzip壓縮優(yōu)化的技術指南
隨著 Web 應用的用戶量和數(shù)據(jù)量增加,網(wǎng)絡帶寬和頁面加載速度逐漸成為瓶頸,為了減少數(shù)據(jù)傳輸量,提高用戶體驗,我們可以使用 Gzip 壓縮 HTTP 響應,本文將介紹如何在 Spring Boot 3 中實現(xiàn) Gzip 壓縮優(yōu)化,需要的朋友可以參考下2025-04-04
Java獲取當前時間并轉化為yyyy-MM-dd?HH:mm:ss格式的多種方式
這篇文章主要介紹了Java獲取當前時間并轉化為yyyy-MM-dd?HH:mm:ss格式的多種方式,每種方式結合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-03-03
Linux下用java -jar運行可執(zhí)行jar包的方法教程
這篇文章主要給大家介紹了在Linux下用java -jar運行可執(zhí)行jar包的方法教程,文中介紹的非常詳細,相信對大家的工作或者學習具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-05-05
spring-boot中使用spring-boot-devtools的實現(xiàn)代碼
這篇文章主要介紹了spring-boot中使用spring-boot-devtools的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11

