"Merhaba, Amigo."
"Merhaba Rişi."
"Ellie bana daha fazla koleksiyon örneği istediğini söyledi. Sana birkaç tane vereceğim. İşte koleksiyonların ve arayüzlerin bir listesi:"
Arayüz | sınıf/uygulama | Tanım |
---|---|---|
Liste | Dizi Listesi | Liste |
Bağlantılı liste | Liste | |
Vektör | Vektör | |
Yığın | Yığın | |
Ayarlamak | HashSet | Ayarlamak |
Ağaç Kümesi | Ayarlamak | |
SıralanmışKüme | sıralanmış küme | |
Harita | HashMap | Harita/sözlük |
Ağaç Haritası | Harita/sözlük | |
SıralanmışHarita | sıralanmış sözlük | |
hash tablosu | Hash tablosu |
"Hmm. Bu oldukça fazla. Dört liste, üç set ve dört harita."
"Evet, hepsi List, Set ve Map arayüzlerinin farklı uygulamalarıdır."
"Bu uygulamalar arasındaki fark nedir?"
"Bugün tam olarak bunun hakkında konuşacağız. Sadece sabırlı ol."
"Başka sorunuz var mı?"
" Ekranda bir listeyi nasıl görüntüleyeceğimi biliyorum. Bir Set veya Haritayı nasıl görüntülerim?"
"Bir Listenin öğelerinin belirli bir sırası vardır, bu nedenle onları görüntülemek için bir dizin kullanabilirsiniz. Bir Küme veya Harita için belirli bir sıra yoktur. Aslında, öğeler silindikçe veya yenileri eklendikçe öğelerinin sırası değişebilir. maddeler eklendi."
"İnanılmaz."
"Bu nedenle yineleyiciler adı verilen özel nesneler, koleksiyon öğeleriyle çalışmak üzere icat edildi. Dizinler (Harita) yerine yalnızca adları olsa veya ne adlar ne de dizinler ( Ayarlamak)."
"İşte bazı örnekler:"
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
// Get an iterator for the set
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) // Check if there is another element
{
// Get the current element and move to the next one
String text = iterator.next();
System.out.println(text);
}
}
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("Rain");
list.add("In");
list.add("Spain");
Iterator<String> iterator = list.iterator();// Get an iterator for the list
while (iterator.hasNext()) // Check if there is another element
{
// Get the current element and move to the next one
String text = iterator.next();
System.out.println(text);
}
}
public static void main(String[] args)
{
// All elements are stored in pairs
Map<String, String> map = new HashMap<String, String>();
map.put("first", "Rain");
map.put("second", "In");
map.put("third", "Spain");
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext())
{
// Get a key-value pair
Map.Entry<String, String> pair = iterator.next();
String key = pair.getKey(); // Key
String value = pair.getValue(); // Value
System.out.println(key + ":" + value);
}
}
"Vay canına. Tüm bunların ne anlama geldiğini merak ediyorum."
"Aslında oldukça basit. İlk olarak, koleksiyondan özel bir nesne, bir yineleyici elde ederiz. Yineleyicinin yalnızca iki yöntemi vardır.
1. next() yöntemi, koleksiyondaki sonraki öğeyi döndürür.
2. hasNext() yöntemi, next() tarafından döndürülmemiş öğelerin olup olmadığını kontrol eder."
"Tamam. Sanırım şimdi daha açık hale geliyor. Size anladığım şeyi tekrar etmeye çalışayım."
"Öyleyse... İlk olarak, bu sihirli yineleyici nesnesini elde etmek için bir koleksiyonda iterator() yöntemini çağırmamız gerekiyor."
"Ardından, alınacak hiç öğe kalmadığı sürece öğeleri birer birer alırız. next()'i çağırarak koleksiyondaki bir sonraki öğeyi alırız ve koleksiyonda hala öğeler olup olmadığını hasNext()'i çağırarak kontrol ederiz. yineleyici. Bu doğru mu?"
"Evet, aşağı yukarı. Ama iyi kısmı bekle."
"Java, yineleyicilerle çalışmak için kısa gösterime sahiptir. while ve for kalıbının ardından , bir özel ifade daha eklendi: for every . Ayrıca for anahtar sözcüğü kullanılarak belirtilir ."
"for-each ifadesi yalnızca koleksiyonlar ve kapsayıcılarla çalışmak için kullanılır. Örtülü olarak bir yineleyici kullanır, ancak yalnızca döndürülen öğeyi görürüz."
"Size bir yineleyici ile çalışmanın uzun ve kısa yollarını göstereyim:"
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
String text = iterator.next();
System.out.println(text);
}
}
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
for (String text : set)
{
System.out.println(text);
}
}
"Kırmızı veya yeşil ile vurgulanan kelimelerin sağ kısımda bulunmadığına dikkat edin. Aslında, üç satır bir ile değiştirilmiştir:"
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
String text = iterator.next();
for (String text : set)
"Bu harika görünüyor. Böylesi daha çok hoşuma gitti."
"Yukarıdaki örneklerin kısa versiyonuna bakalım:"
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
for (String text : set)
{
System.out.println(text);
}
}
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("Rain");
list.add("In");
list.add("Spain");
for (String text : list)
{
System.out.println(text);
}
}
public static void main(String[] args)
{
Map<String, String> map = new HashMap<String, String>();
map.put("first", "Rain");
map.put("second", "In");
map.put("third", "Spain");
for (Map.Entry<String, String> pair : map.entrySet())
{
String key = pair.getKey(); // Key
String value = pair.getValue(); // Value
System.out.println(key + ":" + value);
}
}
"Şimdi konuşuyorsun!"
"Beğendiğine sevindim."
GO TO FULL VERSION