Понятия не имею, как подойти к проблеме, с которой я сталкиваюсь. Мы должны распечатать массив, используя function.Function в качестве параметра и используя lambas для вывода 1. четных и 2. нечетных чисел.
final class Main
{
private Main() {}
public static void main(String[] argv)
{
// Fill the array with integer values and print out only
// values of even indices
DataStructure ds = new DataStructure();
ds.printEven();
// Even
ds.print(..);
}
// Odd
ds.print(...);
}
// конец основного класса
import java.util.Arrays;
import java.util.function.Function;
class DataStructure
{
// Create an array
private final static int SIZE = 15;
private int[] arrayOfInts = new int[SIZE];
int getSize()
{
return SIZE;
}
int[] getInts()
{
return arrayOfInts;
}
DataStructure()
{
// fill the array with ascending integer values
for (int i = 0; i < SIZE; i++)
{
arrayOfInts[i] = i;
}
}
private DataStructureIterator getIterator(IteratorStrategy strategy)
{
return strategy.getIterator(this);
}
void print(IteratorStrategy strategy)
{
DataStructureIterator iterator = getIterator(strategy);
while (iterator.hasNext())
{
System.out.print(iterator.next() + " ");
}
}
void printEven()
{
// Print out values of even indices of the array
DataStructureIterator iterator =
getIterator(newEvenIteratorStrategy());
while (iterator.hasNext())
{
System.out.print(iterator.next() + " ");
}
System.out.println();
}
//this method is still missing - we have to use the given parameters
void print(java.util.function.Function <Integer,Boolean> iterator)
{
}
}
Ожидаемый результат для isEven 0 2 4 6 8 10 12 14
а для isOdd 1 3 5 7 9 11 13
Остальная часть данного класса не должна быть важной, по крайней мере, я так думаю.
Я ищу решения или просто подсказку для часов, но я не нахожу ничего полезного. Ваша помощь очень ценится и извините за мой английский
Если тебе что-нибудь понадобится, дай мне знать. Кстати, я новичок в stackoverflow, поэтому я надеюсь, что все сделал правильно