ArrayCollection functions as a wrapper arround an Array. In this case, you have 2 ArrayCollection variables wrapping the same Array. They are both pointing to the same Array, so changes will of course be shown in both your origin and destination array collections.
What you need to do is make a copy of the Array for one of them to use.
Try to use the below lines of code instead of your code:
_stationOrigin = stnService.allStationNames; // this station name came from DB through remoting
_stationDestination = ObjectUtil.copy(stnService) as ArrayCollection;
Then you can eliminate the above problem...
Thanks for the reply. I retain my original impementation and implement simple validation to check if the origin and destination is equal or not.