1. Kaplar ve koleksiyonlar
Konteynerler veya koleksiyonlar, birkaç nesneyi aynı anda depolamanıza ve işlemenize izin veren sınıflardır. Zaten iki tür kap biliyorsunuz: diziler ve listeler.
Java, her biri öğeleri kendine özgü bir şekilde depolayan birkaç düzine koleksiyona sahiptir. İşte bunlardan birkaçı:
Toplamak | Sınıf | Tanım |
---|---|---|
|
|
Liste |
|
Bağlantılı liste | |
|
Vektör | |
|
Yığın | |
|
|
Ayarlamak |
|
||
|
||
|
|
Sıra |
|
||
|
|
Harita/Sözlük |
|
||
|
İsimler burada biraz belirsiz. Çoğu programlama dilinde, bu veri yapılarının tümü koleksiyon olarak adlandırılır, ancak Java'da değildir. Java'da, bu sınıflardan bazıları arabirimi uygularken Collection
diğerleri uygulamaz.
Buna göre, koleksiyonlar geniş anlamda koleksiyonlara ve dar anlamda koleksiyonlara (sadece arayüzü uygulayanlar ) ayrılır Collection
.
Karışıklığı önlemek için, koleksiyonlardan bahsettiğimizde, kelimenin dar anlamıyla, yani Collection
arayüzü uygulayan sınıfları kastediyoruz. , ve türlerinin tümü koleksiyonlardır List
. Geniş anlamda koleksiyonlara genellikle kaplar denir . Bunlar, benzeri türleri ve dizileri içerir.Set
Queue
Map
2. HashSet
koleksiyon
Sınıf HashSet
, tipik bir set koleksiyonudur. Birçok yönden sınıfa benzer ArrayList
. Bazı yönlerden, daha ilkel bir versiyondur.
HashSet
Aşağıdaki gibi bir ifade kullanarak bir nesne oluşturabilirsiniz :
HashSet<Type> name = new HashSet<Type>();
Type
Koleksiyonda depolayacağımız öğelerin türü nerede HashSet
.
Sınıfın HashSet
aşağıdaki gibi yöntemleri vardır:
Yöntem | Tanım |
---|---|
|
value Öğeyi koleksiyona ekler |
|
value Öğeyi koleksiyondan kaldırır . Böyle bir öğe olup olmadığını döndürür true |
|
Koleksiyonun bir value öğesi olup olmadığını kontrol eder |
|
Tüm öğeleri kaldırarak koleksiyonu temizler |
|
Koleksiyondaki öğelerin sayısını döndürür |
İşte bir küme kullanmanın bir örneği.
Kullanıcı merhaba derse veda eden bir program yazalım. Daha ilginç hale getirmek için, programımıza birkaç dilde "merhaba" kelimesini anlama yeteneği vereceğiz.
kod | Not |
---|---|
|
HashSet Öğeleri depolayan bir nesne oluşturun String . Değişkene çeşitli dillerdeki selamları ekliyoruz set . Konsoldan bir satır okuyun. Dize selam setimizdeyse, o zaman vedalaşırız. |
3. Ayarla
Koleksiyon Set
, bir dizi öğeyi tutmak için tasarlanmıştır. Bu yüzden ona (küme) denir Set
. Bu koleksiyonun üç özelliği vardır.
Küme üzerindeki işlemler
Bir kümeyle yapabileceğiniz yalnızca üç şey vardır: kümeye öğeler ekleyin, kümeden öğeleri kaldırın ve kümenin belirli bir öğe içerip içermediğini kontrol edin. Bu kadar.
Sipariş yok
Bu koleksiyondaki öğelerin dizinleri yoktur. Bir dizine göre bir öğe alamaz veya belirli bir dizindeki bir koleksiyona değer yazamazsınız. Bir kümenin hayır get()
ve set()
yöntemleri vardır.
Benzersiz öğeler
Bir kümedeki tüm öğeler benzersizdir. Bir listeden farklı olarak, bir küme bir öğenin yalnızca bir örneğini içerebilir. Bir nesne ya kümededir ya da değildir - üçüncü bir seçenek yoktur. Bir renk grubuna üç kez siyah ekleyemezsiniz. Ya oradadır ya da değildir.
Elemanları bulma
Yeni bir öğe eklediğinizde, bir öğeyi kaldırdığınızda veya bir kümede bir öğe olup olmadığını kontrol ettiğinizde, yöntemde öğe için bir arama yapılır. Geçirilen öğe, koleksiyonun öğeleriyle önce tarafından , ardından eşleşme hashCode()
tarafından döndürülen değerler ise tarafından karşılaştırılır .hashCode()
equals()
4. Koleksiyonları karşılaştırma: List
vsSet
İki koleksiyon türünü karşılaştıralım: List
ve Set
Biri diğerinden daha avantajlı olduğunda ve tersi olduğunda temel farklılıklara bakacağız.
Örnek olarak oyuncakları kullanarak List ve Set'i karşılaştırmaya çalışalım.
List
(Liste) koleksiyonu, bir oyun odasında duvar boyunca düzenlenmiş bir dizi oyuncak gibidir. Listenin sonuna oyuncak ekleyebilirsiniz. Gerçekten ihtiyacınız varsa, ortasına da yerleştirebilirsiniz (ancak mevcut oyuncakların bazılarının taşınması gerekecektir).
Her oyuncağın bir dizini vardır. Bir oyuncağa dizini ile atıfta bulunabileceğiniz gibi 7 numaralı oyuncağın yerine 13 numaralı oyuncağı koyabilirsiniz. 4 numaralı oyuncağı listeden çıkarabilirsiniz. Son olarak, listedeki her oyuncağın dizinini öğrenebilirsiniz.
Set
(Set) koleksiyonu daha çok zeminin ortasındaki bir oyuncak yığını gibidir. Yığına bir oyuncak ekleyebilir ve yığından bir oyuncağı çıkarabilirsiniz. Ancak bu oyuncakların kendileriyle ilişkilendirilmiş sabit bir dizini yoktur.
Veya çocuğunuzun doğum günü için bir oyuncak seçtiğinizi varsayalım. Önce oyuncağın onda olup olmadığını düşünürsünüz. Zaten sahip olduğu tüm oyuncaklar, satın almayı tercih etmeyeceğiniz bir oyuncak seti oluşturur.
Bu bakış açısından, "zaten var olan oyuncaklar" setindeki oyuncakların sırasının veya doğum günü çocuğunun belirli bir oyuncağın iki örneğine sahip olmasının da önemli olmadığını görebilirsiniz. Her oyuncağın sırası veya sayısı ile ilgilenmiyorsunuz. Önemsediğiniz şey, sette bulunan her bir benzersiz oyuncağı bilmek.
Bunun gibi durumlar için koleksiyona ihtiyacınız var Set
. En popüler uygulaması sınıftır HashSet
.
GO TO FULL VERSION