У меня есть JTable с тремя столбцами, каждый из которых заполнен массивом из ArrayList.Я пытаюсь создать поисковую систему, в которой пользователь будет искать значение в первом столбце, а строки JTable будут отфильтровываться, так что только строки, содержащие указанную строку из окна поиска, будут отображаться настол после нажатия кнопки.В другой таблице это работало путем фильтрации ArrayList, используемого с помощью этого цикла:
String s = searchBar.getText();
ArrayList<String> fn = new ArrayList<>();
fn.addAll(names); //names is the arraylist that contains all the values that will be filtered
for(Iterator<String> it = fn.iterator(); it.hasNext(); ) {
if (!it.next().contains(s)) {
it.remove();
}
Этот код работает, чтобы отфильтровать массив, но я пытаюсь фильтровать 3 ArrayLists на основе только если один изArrayLists не содержит строку s.Я попытался сделать это:
String s = searchBar.getText();
ArrayList<String> fn = new ArrayList<>();
ArrayList<String> fp = new ArrayList<>();
fn.addAll(names); //names is the arraylist that contains all the values that will be filtered
fp.addAll(numbers)//one of the other arraylists that I want to filter
for(Iterator<String> it = fn.iterator(), itp = fp.iterator(); it.hasNext() && itp.hasNext(); ) {
if (!it.next().contains(s)) {
itp.remove();
it.remove();
}
Когда я запускаю этот код, я получаю исключение в потоке "AWT-EventQueue-0" java.lang.IllegalStateException на строке, где я пишу "itp.remove ();».Есть ли способ удалить из обоих массивов только один из них?