considering i have a method which gets a List passed as an param. Within this method i want to use for instance an ArrayList specific function on that list (lets say trimToSize()). What would be the general approach to deal with a problem like this ? Here two example:
First approach (i don't think this is good)
private void doSomething(final List<T> list) { // ... do something ((ArrayList<T>) list).trimToSize(); // ... do something } Second approach (i think this one is better)
private void doSomething2(final List<T> list) { final List<T> myList = new ArrayList<T>(); // Collections.copy(myList, list); or myList.addAll(list); ((ArrayList<T>) myList).trimToSize(); //..do something } I'm curious whats the best solution for a problem like this.