У меня есть метод, который циклически просматривает Мешок объектов геометрии и получает определенные атрибуты и сравнивает текущий атрибут с предыдущим, если таковой имеется, с намерением сохранить самый высокий атрибут, а затем назначить его другой геометрии.
Я только что понял, что в какой-то момент я доберусь до конца этой сумки, и мне нужен мой метод, чтобы предупредить меня, что она достигла последнего объекта в сумке.
Какя могу определить, что текущий объект является последним в сумке?
int getLargestUnassignedWard() {
Bag lsoaGeoms = centroidsLayer.getGeometries();
System.out.println();
System.out.println("Getting Largest Unassigned Wards!");
int highestOSVI = -1;
MasonGeometry myCopy = null;
for (Object o : lsoaGeoms) {
MasonGeometry masonGeometry = (MasonGeometry) o;
int id = masonGeometry.getIntegerAttribute("ID");
String lsoaID = masonGeometry.getStringAttribute("LSOA_NAME");
int tempOSVI = masonGeometry.getIntegerAttribute("L_GL_OSVI_");
Point highestWard = masonGeometry.geometry.getCentroid();
System.out.println(lsoaID + " - OSVI rating: " + tempOSVI + ", ID: " + id);
if (assignedWards.contains(id))
continue;
// tempOSVI = the attribute in the "L_GL_OSVI_" column - ints
if (tempOSVI > highestOSVI) { // if temp is higher than highest
highestOSVI = tempOSVI; // update highest to temp
myCopy = masonGeometry; // update myCopy, which is a POLYGON
}
}
if (myCopy == null) {
System.out.println("ALERT: LSOA Baselayer is null!");
return -1; // no ID to find if myCopy is null, so just return a fake value
}
int id = myCopy.getIntegerAttribute("ID"); // Here, id changes to the highestOSVI
assignedWards.add(id); // add ID to the "assignedWards" ArrayList
System.out.println("Highest OSVI Raiting is: " + myCopy.getIntegerAttribute("L_GL_OSVI_") + " for LSOA ID: "
+ id + " (" + myCopy.getStringAttribute("LSOA_NAME") + ")");
System.out.println("Current list of Largest Unassigned Wards: " + assignedWards); // Prints out: the ID for the highestOSVI
System.out.println();
return myCopy.getIntegerAttribute("ROAD_ID"); // return Road_ID for the chosen LSOA to visit
}