Vengo da uno sfondo php e in php, c'è una array_size()
funzione che ti dice quanti elementi nell'array sono usati.
Esiste un metodo simile per un String[]
array? Grazie.
Vengo da uno sfondo php e in php, c'è una array_size()
funzione che ti dice quanti elementi nell'array sono usati.
Esiste un metodo simile per un String[]
array? Grazie.
Risposte:
Sì, .length
(simile a una proprietà, non un metodo):
String[] array = new String[10];
int size = array.length;
array.length
In realtà è un membro finale dell'array, non un metodo.
Inoltre, è probabilmente utile notare che se si dispone di un array multidimensionale, è possibile ottenere la rispettiva dimensione semplicemente aggiungendo uno '[0]' all'array che si sta interrogando fino ad arrivare all'asse / tupla / dimensione appropriati.
Questo è probabilmente meglio spiegato con il seguente codice:
public class Test {
public static void main(String[] args){
String[][] moo = new String[5][12];
System.out.println(moo.length); //Prints the size of the First Dimension in the array
System.out.println(moo[0].length);//Prints the size of the Second Dimension in the array
}
}
Che produce l'output:
5
12
Le matrici sono oggetti e hanno un campo di lunghezza.
String [] haha = {"olle", "bulle"};
haha.length sarebbe 2
In java c'è un length
campo che puoi usare su qualsiasi array per scoprire le sue dimensioni:
String[] s = new String[10];
System.out.println(s.length);
Se si desidera che una funzione esegua questa operazione
Object array = new String[10];
int size = Array.getlength(array);
Questo può essere utile se non sai quale tipo di array hai ad esempio int [], byte [] o Object [].
La risposta è "Tutti loro". Un array Java è allocato con un numero fisso di slot degli elementi. L'attributo "lunghezza" ti dirà quanti. Quel numero è immutabile per la vita dell'array. Per un equivalente ridimensionabile, è necessaria una delle classi java.util.List - dove è possibile utilizzare il metodo size () per scoprire quanti elementi sono in uso.
Tuttavia, c'è "In uso" e poi c'è In uso . In una matrice di oggetti di classe, è possibile avere slot di elementi i cui elementi sono oggetti null, quindi anche se contano nell'attributo length, ma le definizioni della maggior parte delle persone, non sono in uso (YMMV, a seconda dell'applicazione). Non esiste una funzione incorporata per restituire i conteggi null / non-null.
Gli oggetti elenco hanno ancora un'altra definizione di "In uso". Per evitare un'eccessiva creazione / distruzione delle strutture di archiviazione sottostanti, in genere in queste classi c'è un po 'di riempimento. Viene utilizzato internamente, ma non viene conteggiato nel metodo size () restituito. E se si tenta di accedere a tali elementi senza espandere l'elenco (tramite i metodi di aggiunta), si otterrà un'eccezione di indice illegale.
Pertanto, per gli elenchi, è possibile avere "In uso" per elementi impegnati non nulli, Tutti gli elementi impegnati (inclusi gli elementi null) o Tutti gli elementi, incluso lo spazio di espansione attualmente allocato.
Tutte le risposte di cui sopra sono corrette. La cosa importante da osservare è che le matrici hanno un attributo di lunghezza ma non un metodo di lunghezza. Ogni volta che usi stringhe e array in java, i tre modelli base che potresti incontrare sono:
Non proprio la risposta alla tua domanda, ma se vuoi avere qualcosa come un array che può crescere e restringersi non dovresti usare un array in Java. Probabilmente è meglio usare ArrayList o un'altra implementazione di Elenco.
È quindi possibile chiamare size () su di esso per ottenere la dimensione.