I know what ArrayList<T> is used for, but when should I use ArrayList<?> ? can you explain with example? thanks.