Предполагая, что это уже существующий список, который вы хотите изменить:
public static void truncate20(List<String> strs) {
for (ListIterator<String> iter = strs.listIterator(); iter.hasNext();) {
String str = iter.next();
if (str.length() > 20) {
iter.set(str.substring(0, 20));
}
}
}
Создать новый список достаточно просто - просто add
каждая итерация.
Если вы хотите сделать это при вставке, я предлагаю вам написать класс, который * не расширяет List
. Просто дайте нужную вам операцию, которая имеет смысл.