Managed to get a 22% improvement on Core i7 OSX / Oracle JDK8 by replacing the for iterator-style loop with a C style one. Am I missing something because this shouldn't be faster.
ArrayList<route> neighbours = nodes.get(nodeID).neighbours;
for(int i=0;i<neighbours.size();i++){
route neighbour = neighbours.get(i);
Also add -Xbatch as a parameter which gives another few percentage points.