List<Integer> listaParzysta= new ArrayList<>();
List<Integer> listaNieparzysta= new ArrayList<>();
for(int el: tab) {
// dla każdego elementu z tablicy jesli jest podzielny
if(el %2 ==0 ) {
// dodaj element
listaParzysta.add(el);
}
else listaNieparzysta.add(el);
// dla przypadku gdy element jest nieparzysty
}
w sytuacji gdy tab to tablica to prymitywna tablica to : for (int i=0;i<tab.length;i++) { klasyczne działanie if/else z dodawaniem elementów z tym, że dodać musisz iterator najlepiej licznik dodatkowy, który zwiększysz kiedy dodasz jakiś element do listy, tak żeby nie umieszczac elementów na np. 3 pozycji [ gdy i=3] a dopiero 1 raz wystapila liczba mozesz uzyc dodania do list, np listaParzysta.add(tab[i]); wtedy lepsza gwarancja bez iteratora dodatkowego }
Po pierwsze: jaką masz pewność że liczb bedzie 5 parzystych np ? a nie 9 parzystych a 1 nieparzysta w wyjściowej 10 elementowej ? Więc tworzenie tablic 5 el. jest błędne, a 10 el. to marnowanie pamięci
Lepsze użycie zapewnia List<Integer> lista= new ArrayList<>();