JAVA Вернуть два массива из одного метода и прочитать в другом
В одном метода, делаю sql запрос для получения ряда данных. Все эти данные формирую в отчет и в массив. Но для продолжения работы, мне нужен например id каждого отчета, из этой же базы. Можно ли как-то сложить два массива в один(что-то ? ) и сделать ему return, а в другом методе другого класса, достать по очерёдно то, что мне нужно?
Ответы (1 шт):
Автор решения: BccHnw
→ Ссылка
Часто в языках программирования для этого используются т.н. кортежи (tuples). В Java, к сожалению, их нет (хотя в 14 появились record, которые достаточно близки и могли бы использоваться для этой задачи).
Но это легко обходится при помощи вспомогательного класса. Например, простейший кортеж на два значения:
public final class Tuple2<A, B> {
private final A v1;
private final B v2;
public Tuple2(A v1, B v2) {
this.v1 = v1;
this.v2 = v2;
}
public A get1() {
return v1;
}
public B get2() {
return v2;
}
}
Пример использования:
public class Main {
public static Tuple2<String[], int[]> test() {
String[] arr1 = {"a", "b", "c"};
int[] arr2 = {1, 2, 3};
return new Tuple2(arr1, arr2);
}
public static void main(String[] args) throws IOException {
Tuple2<String[], int[]> result = test();
String[] arr1 = result.get1();
int[] arr2 = result.get2();
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
}
}