Я работал над поиском лучшего способа фильтрации содержимого ArrayList
Например, у этой программы есть основной ArrayList под названием «Students», а затем я создал другие сублисты из содержимого этого списка (oldStudents, youngStudents, stupidStudents, smartStudents. Цель состоит в том, чтобы отфильтровать ArrayList на основе выбора пользователей (молодых, старых, умных или глупых)
ArrayList<String> students = new ArrayList<String>();
ArrayList<String> smartStudents = new ArrayList<String>();
ArrayList<String> stupidStudents = new ArrayList<String>();
ArrayList<String> oldStudents = new ArrayList<String>();
ArrayList<String> youngStudents = new ArrayList<String>();
//adding all the students to students list
Collections.addAll(students, "Ram", "Mohan", "Sohan", "Rabi", "Shabbir","Jack", "Johnson", "Peter", "Despina", "Me");
//adding young students to youngStudents list
Collections.addAll(youngStudents, "Ram", "Mohan", "Sohan", "Rabi", "Shabbir");
//adding smart students to oldStudents list
Collections.addAll(oldStudents, "Jack", "Johnson", "Peter", "Despina", "Me");
//adding smart students to smartStudents list
Collections.addAll(smartStudents, "Sohan", "Rabi", "Peter", "Despina");
//adding smart students to stupidStudents list
Collections.addAll(stupidStudents, "Ram", "Mohan", "Shabbir","Jack", "Johnson", "Me");
Scanner input = new Scanner(System.in);
String uInput = "";
System.out.print("This is a students search engine, write 'young' for younger students and 'old' for older ones ");
uInput = input.nextLine();
if(uInput.equals("young")) {
students.removeAll(oldStudents);
} else if (uInput.equals("old")) {
students.removeAll(youngStudents);
}
System.out.print("now write 'Smart' for smarter students and 'Stupid' for less smart students ");
uInput = input.nextLine();
if(uInput.equals("smart")) {
students.removeAll(stupidStudents);
} else if (uInput.equals("Stupid")) {
students.removeAll(smartStudents);
}
System.out.println(students);
Это работает, но я считаю, что есть лучший способчтобы достичь этого