public ArrayList<QuakeEntry> getClosest(ArrayList<QuakeEntry> quakeData, Location current, int howMany) {
ArrayList<QuakeEntry> ret = new ArrayList<QuakeEntry>();
// TO DO
for(int i=0; i< howMany; i++){
ret.add(quakeData.get(i));
}
// for each quake in quakeData
for(QuakeEntry qe:quakeData){
// Calculate distance between quakeData quake and current location
Location qeLocation = qe.getLocation();
float qeDistance = current.distanceTo(qeLocation);
System.out.println("Distance between quakeData quake and current location: " + qeDistance);
// for each quake in ret
for(QuakeEntry quake: ret){
// Calculate distance between ret quake and current location
Location qeRet = quake.getLocation();
float retDistance = current.distanceTo(qeRet);
System.out.println("Distance between ret quake and current location: " + retDistance);
// If quakeData quake is closer than ret quake
if(qeDistance < retDistance){
// replace ret quake with quakeData quake
int index = ret.indexOf(quake);
ret.remove(index);
ret.add(index, qe);
System.out.println(retDistance + " " + qeDistance);
System.out.println("Added quake to pos " + index);
// Check next quakeData quake
break;
}
}
}
System.out.println(ret.size());
return ret;
}
public ArrayList<QuakeEntry> getLargest(ArrayList<QuakeEntry> data, int howMany){
ArrayList<QuakeEntry> dataRemovable = data;
ArrayList<QuakeEntry> largest = new ArrayList<QuakeEntry>();
// Until either largest contains howMany elements or data runs out
while(largest.size() < howMany || dataRemovable.size() == 0){
int index = indexOfLargest(dataRemovable);
largest.add(dataRemovable.get(index));
dataRemovable.remove(index);
}
return largest;
}