По dblist с использованием Java 8. Вы имеете в виду Java 8 Stream? Если это так, вы можете сделать так:
Пример
String[] userArray = new String[]{"123","456"};
List<String> dbList = Arrays.asList("123", "456", "555");
List<String> matchedValues = Stream.of(userArray)
.filter( userArrayValue -> dbList.contains(userArrayValue))
.collect(Collectors.toList());
System.out.println(Arrays.toString(matchedValues.toArray()));
И у вас есть вывод:
[123, 456]
Объясняя код:
Сначала мы создаем Strem из вашего userArray
;
Затем мы фильтруем, используя метод фильтра Stream #;
Таким образом, каждое значение userArrayValue
будет проверено, если оно существует в dbList
;
Если это так, мы собираем его в новый список, вызывая Stream # collect
Вот и все.
Правка
Согласно комментарию пользователя
На самом деле мне нужно сделать это сравнение и сделать обновление и вставки в БД. Если значение существует в обоих, я ничего не делаю. Если не существует в dblist, мне придется вставить его, и если значения существуют в dblist и отсутствуют в userArray, я должен удалить его
Значения, присутствующие в dbList и отсутствующие в userArray
String[] userArray = new String[]{"123","456"};
List<String> userList = Arrays.asList(userArray);
List<String> dbList = Arrays.asList("123", "456", "555");
List<String> unMatchedValues = dbList.stream()
.filter( userArrayValue -> !userList.contains(userArrayValue))
.collect(Collectors.toList());
System.out.println(Arrays.toString(unMatchedValues.toArray()));
Вывод
[555]
Значения, присутствующие в userArray, отсутствуют в dbList
String[] userArray = new String[]{"123","456", "888"};
List<String> dbList = Arrays.asList("123", "456");
List<String> unMatchedValues = Stream.of(userArray)
.filter( userArrayValue -> !dbList.contains(userArrayValue))
.collect(Collectors.toList());
System.out.println(Arrays.toString(unMatchedValues.toArray()));
Вывод
[888]