Хорошо, вот что я хочу сделать:Java: Как реализовать метод, который принимает 2 массива и возвращает 2 массива?
Я хочу реализовать метод кроссовера для массивов.
Предполагается взять 2 массива одинакового размера и вернуть два новых массива, которые являются разновидностью двух входных массивов. , как в [a, a, a, a] [b, b, b, b] ------> [a, a, b, b] [b, b, a, a].
Теперь интересно, какой будет предлагаемый способ сделать это на Java, поскольку я не могу вернуть более одного значения.
Мои идеи: - возврат коллекции (или массива), содержащей и новые массивы.
Мне не нравится этот, потому что, по его мнению, это приведет к сложному пониманию кода. - избегая необходимости возвращать два результата, вызывая метод для каждого случая, но каждый раз получая один из результатов.
Мне тоже не нравится это, потому что не будет естественного порядка о том, какое решение следует вернуть. Это нужно будет уточнить, но в результате сложнее понять код.
Плюс, это будет работать только для этого основного корпуса, но я захочу перетасовать массив перед кроссовером и наоборот, чтобы потом. Я не могу сделать перетасовку, изолированную от кроссовера, так как я не хочу на самом деле выполнять операцию, вместо этого я хочу использовать информацию о перестановке, выполняя кроссовер, что будет более эффективным способом, я думаю.
Мой вопрос не о самом алгоритме, а о том, как поставить в в методе (относительно входа и выхода) в Java
В .Net: частная пустота modifyInPlace (иая строка [] arr1, иая строка arr2) {...} В Java: Смотрите http://stackoverflow.com/questions/333151/ java-how-to-pass-byte-by-reference –
Я действительно этого не понимаю. – HansDampf
@ Гарниш, если он хотел изменить массивы на месте, это тоже не проблема в Java. – Yishai