Ciao a tutti
Vorrei fare un metodo avente come parametri espliciti due array (a e b) che dia come valore di ritorno un array che sia identico all'array tra a e b più capiente (per intenderci, con più disponibilità di spazio per contenere variabili, con un numero di indice massimo più grande).
Molto semplicemente ho pensato a questo:
codice:public static int [] arrayMax(int[]a, int[]b){ if (a.length>b.length){ a=b; b=a; } return b; }
L'algoritmo ragiona nel seguente modo: b viene considerato il più capiente. Se è così realmente, il programma ritorna direttamente b, altrimenti (condizione if) vengono cambiati i riferimenti ai due array, e così il ragionamento per b va ancora bene.
O meglio, dovrebbe! Perché a quanto pare non funziona proprio così. Alla fine il metodo, anche dopo essere entrato nell'if, ritorna comunque un array identico a b (qualsiasi sia la lunghezza di b rispetto ad a).
Qualcuno mi sa gentilmente spiegare perché non funziona? Che alternative altrettanto brevi ci sarebbero?
Grazie mille