Java'da, Liste ve Harita koleksiyonlarda kullanıyor. Fakat hangi durumlarda Listeyi kullanmalı ve Harita'yı hangi zaman kullanacağımızı anlayamadım. İkisi arasındaki en büyük fark nedir?Haritadan liste nasıl farklıdır?
cevap
Şimdi Java collections tutorial okumak için iyi bir zaman olacağını - ama temelde, bir liste dizine erişebileceğiniz unsurların düzenli dizisidir ve bir harita değerlerine anahtarlardan bir genellikle sırasız eşleştirme yapılır. (Bazı haritalar ekleme sırasını korur, ancak bu uygulamaya özgüdür.)
Bir anahtar/değer eşlemesi ve yalnızca bir öğe koleksiyonu istediğinizde, genellikle oldukça açıktır. Anahtar, numaralı anahtarının değeri ise daha az anlaşılır, ancak bir öğeye verimli bir şekilde erişmek istediğinizde. bazı duyularında bile ayrı bir anahtar koleksiyonunuz olmasa bile, bir harita için hala iyi bir kullanım durumudur.
Ayrıca öğesinin öğesinden oluşan bir (genellikle sırasız) koleksiyonu olan Set
vardır. Öğrenci rulo numaralarını isimlerine eşlemek istiyorsanız, örneğin Key:Value
çift tür veri için
List
yalnızca bir koleksiyon topluluğudur (sıra). Bu list documentation'u kontrol edin. Öğelere tamsayı dizinine (listedeki konum) erişebilir ve listedeki öğeleri arayabilirsiniz. Ayrıca listeler, yinelenen öğelere ve birden çok NULL öğesine izin verir.
Map
Değerleri anahtarlarla eşleyen bir nesnedir. Bu map documentation kontrol edin. Bir harita çift anahtar içermez; Her tuş en fazla bir değerle eşlenebilir.
Harita Arabirimi A Harita benzersiz tanımlayıcılarla ilgilenir. Eşsiz bir anahtarı (ID), hem anahtar hem de değer, elbette nesneler olan belirli bir değerine eşlersiniz. Harita uygulamaları, tuşa dayalı olarak değerini aramak, sadece değerlerin bir koleksiyonunu istemek veya yalnızca anahtarların bir koleksiyonunu istemek gibi şeyler yapmanıza izin verir. Ayarlar gibi Haritalar, iki anahtarın aynı mı yoksa farklı mı olduğunu belirlemek için equals() yöntemine güvenir.
Liste Arabirimi A Liste dizinle ilgileniyor. Listede listelenmemiş olan tek şey numarasına sahip değildir, endeksle ilgili bir dizi yöntemdir. Bu anahtar yöntemler, get (int dizini), indexOf (Object o), add (int indeks, Object obj) ve gibi öğeleri içerir. Üç Liste uygulamasının tümü, dizin konumuna göre sıralanır; bu, öğesinin, belirli bir dizindeki bir nesneyi ayarlayarak veya belirtme konumu olmadan ekleyerek belirlediğiniz bir konumdur, bu durumda nesne sonuna eklenir.
listesi, her nesnenin işaretçiler aracılığıyla bir sonraki öğeye bağlandığı bağlantılı bir listedir. Listeye yeni bir nesne eklemek için gereken süre O (1) 'dir, fakat üzerindeki diğer işlemler daha uzun sürer.
Bu konuda iyi bir şey, ihtiyacınız olan bellek miktarını tam olarak alması ve hatta ondan daha fazla bayt içermemesidir.
Haritalar, bir diziye sahip olan ve diziye her bir girişin, konuma göre anahtarı hesaplayan hashFunction(key)
ile hesaplanan bir veri yapısıdır. Bir Haritadaki hemen hemen her işlem, O (1) (2 eşdeğer anahtar olduğunda ekleme hariç) ancak uzay karmaşıklığı oldukça büyüktür. daha fazla okuma deneyin Wikipedia'nın HashMap ve linked list
HashMap ve LinkedList, Harita ve Liste arayüzünün uygulamalarıdır, bunlar yalnızca bu koleksiyonların belirli bir örneğidir. –
@GuillaumePolet, siz haklısınız, ama fikir önemli olan şeydir. MAP ve LİSTE arasındaki farkın anlaşılmasının temeli, hashmap ve linklist arasındaki farkı anlamaktır. – thepoosh
HashList için
karma bir tabloda nesneleri depolamak bir veri yapısıdır ve list.it bir HashMap kombinasyonu ve çift bağlı listesidir. Acess daha hızlı olacak. HashMap, harita arayüzünün karma tablosu uygulamasıdır ve senkronize olmadığından ve boş değerlere izin vermeden HashTable ile aynıdır. Liste, sipariş edilen bir koleksiyondur ve boş değerlere ve kopyalara izin verir. konumsal erişim mümkündür. Küme, kopyalara izin vermeyen bir koleksiyondur, en fazla bir null öğeye izin verebilir. matematiksel setimizle aynı.
List - This datastructure is used to contain list of elements.
In case you need list of elements and the list may contain duplicate values,
then you have to use List.
Map - It contains data as key value pair. When you have to store data
in key value pair,so that latter you can retrieve data using the key,
you have to use Map data structure.
Liste uygulaması - ArrayList LinkedList
Harita uygulaması - tüm almak istiyorsanız bir karma haritası hızlı veri yapısıdır - HashMap, TreeMap ArrayList
kıyasla HashMap
yılında
bir sayfa için düğümler. Zaman listesi O (n) (n = sayfa sayısı, sıralı listelerde daha hızlı, ancak O (1) 'e yaklaşma)
- 1. Haritadan Haritaya nasıl eşlenir?
- 2. Golang'da bir haritadan nasıl sıralanır?
- 3. nodejs nasıl akıcılıktan farklıdır?
- 4. ArrayListMultimap, LinkedListMultimap'ten nasıl farklıdır?
- 5. path // nedir, nasıl farklıdır?/
- 6. Haritadan Dikdörtgeni Çıkarma
- 7. GCC: marş, mtune'den nasıl farklıdır?
- 8. Bir Clojure kaydını bir haritadan nasıl doldurabilirim?
- 9. MapResult haritadan nasıl dönüştürülür? ints dizisine
- 10. İlkel özyineleme "normal" tekrardan nasıl farklıdır?
- 11. Raylar: "email_field" "text_field" dan nasıl farklıdır?
- 12. OPENQUERY SELECT ve INSERT için nasıl farklıdır?
- 13. C++ 'da haritadan ilk değeri alma
- 14. Silme tuşu, C değeri ile haritadan değer ++
- 15. Hikaye panosu önizlemesi simülatörden farklıdır
- 16. C++ Anahtar olarak dize içeren liste
- 17. SciPy interp1d sonuçları, MatLab interp1'den farklıdır
- 18. Liste ve alt liste -android nasıl oluşturulur?
- 19. Bloklar, Objective-C'deki normal yöntemlerden ve işlevlerden nasıl farklıdır?
- 20. Dinamik Testler, JUnit 5'deki Parametreli Testlerden nasıl farklıdır?
- 21. IndexedDB, HTML5 yerel depolama biriminden kavramsal olarak nasıl farklıdır?
- 22. jQuery.each uygulaması, native Array.forEach öğesinden farklıdır
- 23. TCPDF QR Kodu her zaman farklıdır
- 24. boş anahtar// Ben sadece haritadan boş anahtarı alıyorum nedense CouchDB
- 25. Bir haritadan hat başına X girişine çıktı listesi çıkışı
- 26. interaktif bir haritadan csv veya excel formunda veri ayıklama
- 27. Liste kutusu nasıl kullanılır?
- 28. Boş liste nasıl başlatılır?
- 29. nasıl bir liste
- 30. Liste öğelerini nasıl taşıyabilirim?
Way: düğümlerin listesi sabit zamanda (O (1)) getirilebilir. bir skeet cevap almak için! – chiliNUT