Pracowałem dzisiaj ze stosunkowo dużymi tablicami String
. (Około 400 x 400) Zastanawiałem się, w jaki sposób tworzenie jednej tablicy równej drugiej działa dokładnie. Na przykład:Java: Jak działają tablice
String[][] array1 = new String[400][400];
String[][] array2 = array1;
Czy utworzenie jednej tablicy równej drugiej jest równoznaczne z zapętlaniem się każdego elementu i wyrównaniem go z odpowiednią pozycją w innej tablicy? (Podobnie jak poniżej)
for(int y = 0; y < 400; y++) {
for(int x = 0; x < 400; x++) {
array2[x][y] = array1[x][y];
}
}
Teraz jest metoda pętli to samo, co jedna tablica równa się innej? Czy pierwszy/drugi jest szybszy od drugiego? Osobiście uważam, że pierwszy byłby szybszy tylko dlatego, że nie ma rekursji lub konieczności ręcznego przydzielania pamięci do array2
przed rekursją. Ale nie mam pojęcia, gdzie zacząć szukać tych informacji i chciałbym zrozumieć logistykę tego, jak Java przetwarza takie rzeczy.
Spójrz na [Java Arrays] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html) – adatapost
Wydaje mi się również, że nie masz pewności co do definicji rekursji. –
Interesujące, ale nie widzę nic na ten temat, chyba że na dole, gdzie wspomniano o metodzie arrayCopy, która nie ma nic wspólnego z uczynieniem jednej tablicy równą innej z równym znakiem Doug Ramsey: Prawdopodobnie jestem, ponieważ Naprawdę nie wiem JAK rzeczy działają tak dużo, jak wiem, że faktycznie działają. – CoderTheTyler