Jestem ciekawy, dlaczego tablice są używane, gdy można zamiast tego użyć ArrayLists? Czy nie zawsze lepiej byłoby użyć ArrayList?Dlaczego ważne jest, aby dowiedzieć się więcej o tablicach, gdy mamy ArrayLists?
Odpowiedz
Sprawdź this comparison.
Jak widać, istnieją istotne różnice między tymi dwoma konstrukcjami. Znajdziesz interfejsy API używające jednego lub drugiego (i obu), i musisz zrozumieć zalety/wady i różnice funkcjonalne między tymi dwoma.
Jedną szczególną różnicą jest to, że natywna tablica może przechowywać prymitywy bez nieefektywności boksowania/rozpakowywania. Jest to znaczące, gdy masz duże tablice reprezentujące strumienie danych/zestawy danych.
Należy również zauważyć, że ArrayList
jest nie kowariant. Oznacza to, że Integer[]
jest Number[]
, ale ArrayList<Integer>
nie jest ArrayList<Number>
. Aby uzyskać więcej informacji, patrz here.
"To nie jest klasa" - nie jest poprawna –
Tablice i ArrayList
s służą innym, choć czasami nakładającym się, celom.
Ale poza tym prostym faktem jest to, że nie kodujesz w próżni, więc używasz interfejsów API obejmujących tablice, więc poznanie ich nie jest opcjonalne. Tablice są absolutnie podstawową strukturą w informatyce.
Właściwie myślę, że facet mógłby zakodować w próżni, biorąc pod uwagę jego pytanie ... – Zo72
Bardzo ważne jest posiadanie odpowiedniego fundamentu w podstawach programowania. Podstawy te obejmują takie typy zmiennych, funkcje, argumenty, tablice itd. Bez właściwego fundamentu wszystko, czego się uczysz, może się zawalić, ponieważ nie masz odpowiedniego fundamentu. Innymi słowy, powiedzmy, że chcesz nauczyć się języka, możesz zacząć uczyć się całych fraz po zapamiętywaniu, ale miło jest, gdy niektóre słowa znikają z języka i zaczynają się trawić i układają, jak możesz wydobywać zdania ze słów zamiast brutalny wymuszenie i zapamiętanie wszystkich zdań, których potrzebujesz.
Ważne jest, aby nauczyć się tablic, jeśli chcesz lepiej zrozumieć, co dzieje się "za kulisami", lub jeśli chcesz nauczyć się języka niższego poziomu, takiego jak język C lub assembler.
Czy mogę zapytać, gdzie uczysz się języka Java? Czy to jest dla szkoły/uczelni? Jeśli tak, spróbuj wydostać coś z pracy z tablicami, ponieważ będą one używane w kursach takich jak struktury danych, a zwłaszcza jeśli zaczniesz używać języka, który nie ma odpowiednika ArrayList.
Dowiedz się wszystkiego, co możesz na ten temat. Zrozumienie, co się dzieje, jest satysfakcjonujące.
Jest wiele rzeczy, które można zrobić z tablicami, których nie można wykonać z ArrayList
s. Na przykład,
- Przeczytaj kilka bajtów lub kod-jednostki z pliku za pomocą
byte[]
lubchar[]
- połączenia rodem numerycznej lub graficznej biblioteki, która zajmuje się wektorów lub macierzy reprezentowane
float[]
s lubdouble[]
s
Można użyć innych abstrakcji niepochodzących z prymitywów zamiast ArrayList
, ale czasami najlepszym sposobem reprezentowania ciągłego regionu pamięci podzielonego na jednostki numeryczne jest użycie tablicy.
String []array = { "I","DO","NOT","RESIZE" };
@szaradża wcale nie. Najprostszy przykład, jaki mogłem wymyślić, aby pokazać różnice między tablicami a listami układów. – Zo72
- 1. Gdzie mogę dowiedzieć się więcej o WebCoreSharedBufferData?
- 2. Jaki jest najlepszy sposób, aby dowiedzieć się więcej o implementacji VM poza faktem hakowania kodu?
- 3. Chcesz dowiedzieć się więcej na temat NTILE()
- 4. Jak mogę dowiedzieć się więcej o tym, dlaczego moja kolejka Laravel w kolejce nie powiodła się?
- 5. Dlaczego Shadow DOM, gdy mamy iframes?
- 6. Dlaczego używać kodowania CJSON, gdy mamy json_encode
- 7. Źródła informacji, aby dowiedzieć się więcej programowania programowanego sprzętowo
- 8. . Kontrakty CodeNet - Gdzie można dowiedzieć się więcej?
- 9. Gdzie mogę się dowiedzieć o MEF?
- 10. Dowiedzieć się, gdy moduł GWT załadowaniu
- 11. Jak dowiedzieć się, dlaczego Maven zawierał słoik?
- 12. MIPS: Dlaczego potrzebujemy bajta obciążenia, gdy mamy już słowo load?
- 13. Dowiedz się więcej o przetwarzaniu rozproszonym
- 14. Dlaczego ważne jest, aby nauczyć się metaprogramowania i eigenclasses w Ruby?
- 15. Dlaczego mamy niezmienną pustą mapę?
- 16. Dlaczego masz "gdzie", gdy jest "o"
- 17. Dlaczego Eclipse czasami ostrzega o tablicach tablic w JavaScript?
- 18. Gdzie mogę się dowiedzieć o systemach rekomendacji?
- 19. Dlaczego powinniśmy używać zakodowanych ui, gdy mamy Specflow?
- 20. Jak dowiedzieć się więcej o kodowaniu kodu programisty w androidowym studio
- 21. Czy to ważne, aby lambda zasadniczo się do siebie zbliżyła?
- 22. Dlaczego int x = 08; jest ważne, gdy int x = 078; jest nieprawidłowy w `DMD`?
- 23. Jak mogę się dowiedzieć o pisaniu specyfikacji projektu?
- 24. Python - dowiedzieć się, ile obraz jest czarno
- 25. Dowiedzieć się, czy jest potęgą b
- 26. Co to jest WebIDL i (dlaczego) jest to ważne?
- 27. Dlaczego "więcej" ISeq nie nazywa się "reszta"?
- 28. Dlaczego Django fcgi po prostu umrzeć? Jak mogę się dowiedzieć?
- 29. Czy to jest ważne dla listy hibernacji(), aby zwrócić duplikaty?
- 30. Jakie książki pomogą mi dowiedzieć się wszystkiego o SSL/PKI?
Jeśli jedynym językiem, który planujesz użyć, jest java, to nie martw się o to. –
Jest to odpowiedni wątek, który może pomóc: http://stackoverflow.com/questions/717218/why-not-always-use-arraylists-in-java-instead-of-plain-ol-arrays – Brian
masz na myśli 'Tablice' jak w 'java.util.Arrays' lub" tablice "jako ogólne pojęcie informatyczne dla ciągłego bloku pamięci dostępnego przez indeks? –