在Java中,我有一个名为ExampleClass的类,该类具有一个称为Item的类的集合。每个项目在称为ID的字段中都有一个整数。如何让ExampleClass的迭代器遍历具有偶数ID的项,然后遍历具有奇数ID的项。
编辑:我不需要这个特定问题的答案,我一般是在问如何在ExampleClass中使用Iterator内部类 它将首先遍历具有一个属性的项目,然后遍历其他属性。
答案 0 :(得分:0)
您可以使用以下if条件检查ID是否为奇数:
for(int i = 0;i < maxID;i++) { //I'm not sure what your maximum ID is.
if(Item.ID % 2 == 0) {
//Iterate
}
}
然后,您可以对奇数ID执行相同的操作:
for(int i = 0;i < maxID;i++) { //I'm not sure what your maximum ID is.
if(Item.ID % 2 == 1) {
//Iterate
}
}
代码Item.ID % 2
将ID除以2,然后返回余数。在if语句中,它将检查余数是否为0。如果为0,则ID为偶数,并运行所需的代码。但是,如果余数为1,则数字为奇数。
示例:4 / 2 = 2
。余数为0。因此,数字4
是偶数。
示例:5 / 2 = 2
。余数为1。因此,数字5
是奇数。
答案 1 :(得分:0)
这里有两种方法可以用1个衬纸进行处理。
final Iterator<Item> it = items.stream().filter(i.getID() % 2 == 0).iterator();
或
for (final Item i : items.stream().filter(i.getID() % 2 == 0).toArray())
doSomethingWith(i);
答案 2 :(得分:0)
如果您需要以任何特定的顺序遍历它们,则需要在遍历它们之前制作一组有序的项目。具体如何操作取决于您的应用程序和订购需求。我建议使用类似于伪代码的东西:
unsortedArray[]
sortedArray[]
for (every element in unsortedArray) {
id = element.ID; //Or sort value calculated with some other method
sortedIndexBeforeID = sortedArray.findLastElementWithIDBelow(id); //Get the index of sorted element with an ID just before ours.
sortedArray.insert(element,sortedIDBeforeID); //Add the element into the sorted array at given index, pushing the rest of the elements around
}
sortedArray[]