View Full Version : [java] return di metodo
marpessio
15-07-2008, 11:23
Salve a tutti io in un metodo lavoro con una matrice del tipo String[][] e con una matrice del tipo int[][] come posso far ritornare al metodo entrambe....pensavo a un "contenitore" dove inserirle entrambe e poterle cosi ritornare....
grazie
si dovresti creare un contenitore, cioè un oggetto apposito che contiene tutte e due le matrici
potresti usare i generici ... ti crei un metodo + o - cosi ...
public <T> T[][] getMatrice(T param){
}
xo nn puoi usare gli int ma Integer
^TiGeRShArK^
15-07-2008, 12:30
:mbe:
ma perchè tutto ciò? :stordita:
gli array sono reference type, quindi quando vendono passati ad un metodo gli viene passata la copia del riferimento e quindi qualsiasi modifica effettuata sul contenuto degli array all'interno del metodo si ripercuote sulle matrici originali.
Tanto per fare un esempio:
public class Prova {
public Prova() {
int[][] matrix = new int[5][5];
String[][] matrixString = new String[5][5];
process(matrix, matrixString);
for (int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix.length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
System.out.println();
for (int i = 0; i < matrixString.length; i++) {
for(int j = 0; j < matrixString.length; j++) {
System.out.print(matrixString[i][j] + " ");
}
System.out.println();
}
}
private void process(int[][] matrix, String[][] matrixString) {
for (int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix.length; j++) {
matrix[i][j] = i + j;
matrixString[i][j] = String.valueOf(i + j);
}
}
}
public static void main(String[] args) {
new Prova();
}
}
Non ritorno nulla dal metodo, eppure le matrici anzichè essere vuote hanno questo contenuto:
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
quindi..
a che ti serve ritornare due cose se hai già quello che ti serve senza ritornare nulla? :fagiano:
in effetti non hai tutti i torti :p
però se gli array vengono creati dentro il metodo allora io userei un contenitore piuttosto che istanziare l'array fuori dal metodo e modificarlo dentro
marpessio
15-07-2008, 15:22
grazie mille ho risolto....
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.