That's exactly why they are the same. You are assigning StationsArrayListG7a the value of StationsArrayListG7, and then assigning StationsArrayListG7 items. Both StationsArrayListG7a and stationsArrayListG7 point at the same object, so they both retrieve the same results. Remove this assignment
StationsArrayListG7a = StationsArrayListG7;, and they will point at the same list. I assume that your generic instantiation is of type Long as well; that will throw a compilation failure otherwise.