假设我有一个自定义课程:

public class CustomClass {
    private String name;
    private String data;

    public CustomClass(String name, String data) {
        this.name = name;
        this.data = data;
    }
}


我也有一个自定义类对象的列表:

CustomClass[] list = new CustomClass[] {
    new CustomClass("Item 1", "data"),
    new CustomClass("Item 2", "data"),
    new CustomClass("Item 3", "data"),
    new CustomClass("Item 4", "data"),
    new CustomClass("Item 5", "data"),
};


如何创建一个迭代器(或更确切地说,生成器)来遍历列表K次(K> list.length),每次都给我下一个元素?

我更喜欢“内联”解决方案(不创建任何新类)。

假设我需要依次获取CustomClass列表项K = 7次。解决方案应根据以下CustomClass对象检索我:

项目1
项目2
项目3
项目4
项目5
项目1
项目2

最佳答案

尝试使用索引模数组长度

for(int i=0;i<K;i++){
   list[i%list.length]; //do sth with that, I just wrote what you get
}


因此,当第一个索引(在这里称为i)大于或等于列表长度时,它将“重置”它,因为模运算(%)返回整数除法后的剩余值

编辑:解决方案确实符合要求,无需实例化任何类

希望它有帮助:)

10-06 07:18