Array.get() is O(1) constant time
List.get() is usually O(1) constant time (although this is not true for LinkedList, but there's practically no reason to use that)
Iterable<T>.elementAt() for other types is a linear walk of the iterator, so it takes O(n) time, and if you're using it while traversing a whole collection, that's O(n²) time
so elementAt() may be useful sometimes, but if you're using it repeatedly or with anything other than small indices you should reconsider, IMO