Sounds like the list of current objects is missing some entries if only the last object is used for testing for a collision.
Another possibility is that there is only one object and the references in the list all point to the same object.
Without a small complete program that compiles, executes and shows the problem, there is no way to test.
Try debugging the code by adding lots of printlns to print out the values of variables that are used to detect a collision to see what the code is doing and why it is working the way it is.
BTW The code is poorly formatted making it hard to read. There should be nesting for code inside of if statements.