Лучший способ найти необычные элементы в списке [дубликаты]

Вы можете выполнить операцию в отдельном потоке в WPF, используя класс BackgroundWorker.

проверить этот пример Как использовать фоновый рабочий стол WPF

И читайте о классе в MSDN здесь http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx

1
задан John Kugelman 21 February 2019 в 03:29
поделиться

2 ответа

Вы можете использовать набор. Содержит для HashSet значение O (1) по сравнению с O (n) для списка, поэтому вы никогда не должны использовать список, если вам часто нужно запускать содержит.

Set<String> bSet = new HashSet<>(bListb);
aLista.stream().filter(a -> !bSet.contains(a)).collect(Collectors.toList());
0
ответ дан Ravindra Ranwala 21 February 2019 в 03:29
поделиться

Поскольку aLista очень ограничен в размерах и bListb потенциально огромен, вам следует преобразовать aLista в Set, а не bListb.

Set<String> missing = new HashSet<>(aLista);
for (String s : bListb) {
    if (missing.isEmpty())
        break;
    missing.remove(s);
}

Код даже закоротит итерацию bListb, если все значения будут найдены, тогда как преобразование bListb в Set не позволит такую ​​логику короткого замыкания.

0
ответ дан Andreas 21 February 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: