Pochodzę z tła PHP, aw PHP jest array_size()funkcja, która mówi, ile elementów w tablicy jest używanych.
Czy istnieje podobna metoda dla String[]tablicy? Dzięki.
Pochodzę z tła PHP, aw PHP jest array_size()funkcja, która mówi, ile elementów w tablicy jest używanych.
Czy istnieje podobna metoda dla String[]tablicy? Dzięki.
Odpowiedzi:
Tak .length(właściwość, a nie metoda):
String[] array = new String[10];
int size = array.length;
array.length
W rzeczywistości jest to ostatni element tablicy, a nie metoda.
Ponadto prawdopodobnie warto zauważyć, że jeśli masz wielowymiarową tablicę, możesz uzyskać odpowiedni wymiar, po prostu dodając „[0]” do tablicy, o którą pytasz, aż dojdziesz do odpowiedniej osi / krotki / wymiaru.
Jest to prawdopodobnie lepiej wyjaśnione za pomocą następującego kodu:
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
}
}
Który daje wynik:
5
12
Tablice są obiektami i mają pole długości.
String [] haha = {"olle", "bulle"};
haha. długość wynosiłaby 2
W javie jest lengthpole, którego możesz użyć na dowolnej tablicy, aby sprawdzić jej rozmiar:
String[] s = new String[10];
System.out.println(s.length);
Jeśli chcesz, aby funkcja to robiła
Object array = new String[10];
int size = Array.getlength(array);
Może to być przydatne, jeśli nie wiesz, jakiego typu masz tablicę, np. Int [], byte [] lub Object [].
Odpowiedź brzmi: „Wszyscy”. Tablica java ma przydzieloną stałą liczbę gniazd elementów. Atrybut „długość” powie Ci, ile. Ta liczba jest niezmienna przez cały okres istnienia tablicy. Aby uzyskać odpowiednik o zmiennym rozmiarze, potrzebujesz jednej z klas java.util.List - w której możesz użyć metody size (), aby dowiedzieć się, ile elementów jest używanych.
Jednakże, nie ma „w użyciu”, a potem jest w użytku . W tablicy obiektów klasy możesz mieć miejsca na elementy, których elementy są obiektami o wartości null, więc nawet jeśli liczą się one w atrybucie length, ale definicje większości ludzi, nie są używane (YMMV, w zależności od aplikacji). Nie ma wbudowanej funkcji zwracającej wartości null / niezerowe.
Obiekty listy mają jeszcze inną definicję „W użyciu”. Aby uniknąć nadmiernego tworzenia / niszczenia podstawowych struktur pamięci masowej, w tych klasach zazwyczaj występuje pewne dopełnienie. Jest używany wewnętrznie, ale nie jest liczony w zwracanej metodzie size (). A jeśli spróbujesz uzyskać dostęp do tych elementów bez rozszerzania listy (za pomocą metod add), otrzymasz niedozwolony wyjątek indeksu.
Tak więc w przypadku list możesz mieć „W użyciu” dla niezerowych, zatwierdzonych elementów, Wszystkie zatwierdzone elementy (w tym puste) lub Wszystkie elementy, w tym aktualnie przydzielone miejsce na rozszerzenie.
Wszystkie powyższe odpowiedzi są prawidłowe. Ważną rzeczą do zaobserwowania jest to, że tablice mają atrybut długości, ale nie metodę długości. Za każdym razem, gdy używasz ciągów i tablic w Javie, możesz napotkać trzy podstawowe modele:
Nie do końca jest to odpowiedź na twoje pytanie, ale jeśli chcesz mieć coś w rodzaju tablicy, która może rosnąć i maleć, nie powinieneś używać tablicy w javie. Prawdopodobnie najlepiej jest używać ArrayList lub innej implementacji List.
Następnie możesz wywołać na nim size (), aby uzyskać jego rozmiar.