Нет необходимости в дополнительной функции, желаемые результаты могут быть достигнуты путем приведения сравниваемых строк в верхний или нижний регистр
(я знаю, что это было предложено в комментариях, но не полностью представлено какответ)
Пример: Игнорирует регистр при фильтрации содержимого JList на основе входных данных, предоставленных JTextField:
private ArrayList<String> getFilteredUsers(String filter, ArrayList<User> users) {
ArrayList<String> filterUsers = new ArrayList<>();
users.stream().filter((user) -> (user.getUsername().toUpperCase().contains(filter.toUpperCase()))).forEach((user)-> {
filterUsers.add(user.getUsername());
});
this.userList.setListData(filterUsers.toArray());
return filterUsers;
/**
* I see the redundancy in returning the object... so even though,
* it is passed by reference you could return type void; but because
* it's being passed by reference, it's a relatively inexpensive
* operation, so providing convenient access with redundancy is just a
* courtesy, much like putting the seat back down. Then, the next
* developer with the unlucky assignment of using your code doesn't
* get the proverbially dreaded "wet" seat.
*/
}