Лучше использовать TreeSet
, чтобы строки автоматически сортировались по алфавиту. Сделайте это следующим образом:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class AddToArrayList {
public static void main(String[] args) {
// Test
List<String> inList = new ArrayList<String>(Arrays.asList("aardvark", "cow", "dog", "cow", "elephant", "dog",
"frog", "bird", "swan", "python", "pig"));
System.out.println(trimList(new char[] { 'g', 'n' }, inList));
}
static List<String> trimList(char[] args, List<String> inList) {
Set<String> result = new TreeSet<String>();
boolean found;
for (String s : inList) {
found = false;
for (char ch : args) {
if (s.endsWith(String.valueOf(ch))) {
found = true;
}
}
if (!found) {
result.add(s);
}
}
return new ArrayList<>(result);
}
}
Вывод:
[aardvark, bird, cow, elephant]
Обратите внимание, когда строка из списка добавляется в набор. Строка из списка должна добавляться в набор только после сравнения всех символов в args[]
.