Создать класс со списком объектов произвольной природы (любой класс). Класс включает в себя метод, который называется PrintList с логическим параметром. Метод выводит на консоль нечетные или четные элементы списка, взависимости от величины параметра (true или false).
  1. Строим обобщенный класс
  2. Объявляем ArrayList c параметрическим типом (создаем список)
  3. Создаем метод, заполняющий список данными
  4. Создаем метод, печатающий либо четные либо нечетные значения
public class PrintList<T> {
	private ArrayList<T> list = null;

	public PrintList() {
		list = new ArrayList<T>();
	}

	public void add(T data) {
	list.add(data);
	}
public void printList(boolean isOdd) {
		int size = list.size();
	if (isOdd) {
		for (int i = 1; i < size; i += 2) {
			System.out.println(list.get(i).toString());
		}
	} else{
		for (int i = 0; i < size; i += 2) {
			System.out.println(list.get(i).toString());
	}}}

}
Создаю объект класса PrintList, но с конкретным классом String вместо параметрического типа. Заполняю список. Он будет состоять из 10 строк. И теперь если plS.printList(true), то выведутся четные строки. А если plS.printList(false), то нечетные.
public static void main(String[] args) {
	PrintList<String> plS = new PrintList<String>();
	for (int i = 0; i < 10; i++){
		plS.add("" + i);
	}
	plS.printList(true);
Затем создаю объект класса PrintList только вместо String используется Integer и выводятся нечетные значения.
PrintList<Integer> plI = new PrintList<Integer>();
	for (int i = 0; i < 10; i++){
		plI.add(i);
	}
	plI.printList(false);
}