Хорошо, вот что я хочу сделать:
Я хочу реализовать метод кроссовера для массивов.
Предполагается взять 2 массива одинакового размера и вернуть два новых массива, которые представляют собой некое сочетание двух входных массивов.
как в [a, a, a, a] [b, b, b, b] ------> [a, a, b, b] [b, b, a, a].
Теперь мне интересно, как бы это было предложено в Java, поскольку я не могу вернуть более одного значения.
Мои идеи:
- возвращает коллекцию (или массив), содержащую оба новых массива.
Мне не очень нравится этот, потому что он думает, что в результате будет сложнее понять код.
- избегая необходимости возвращать два результата, вызывая метод для каждого случая, но получая только один из результатов каждый раз.
Мне это тоже не нравится, потому что не было бы естественного порядка, по которому следует возвращать решение. Это необходимо будет указать, хотя в результате будет сложнее понять код.
Плюс, это будет работать только для этого базового случая, но я хочу перетасовать массив перед кроссовером и затем перевернуть его. Я не могу сделать перетасовку изолированно от кроссовера, так как я не хочу фактически выполнять операцию, вместо этого я хочу использовать информацию о перестановке при выполнении кроссовера, что, я думаю, будет более эффективным способом.
Мой вопрос не о самом алгоритме, а о том, как вставить метод (относительно ввода и вывода) в Java