Bir Listeyi Tersine Çevirme
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 3 / 65.
Bazen bir listenin öğelerini ters sırada görüntülemeniz gerekir. Dart, orijinal listeyi değiştirmeden listenizin ters çevrilmiş bir görünümünü oluşturan .reversed özelliğini sağlar.
.reversed özelliği, liste öğelerini ters sırada sunan bir yinelenebilir (iterable) döndürür. Bu, son öğenin ilk sırada, sondan bir önceki öğenin ikinci sırada göründüğü ve bu şekilde devam ettiği anlamına gelir.
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// Orijinal liste değişmeden kalır
print(numbers); // [1, 2, 3, 4, 5]Önemli bir detay, .reversed özelliğinin bir liste değil, bir yinelenebilir (iterable) döndürmesidir. Eğer onunla bir liste olarak çalışmanız gerekiyorsa, .toList() kullanarak dönüştürebilirsiniz. Bu özellik, orijinal listenizi bozmadan verileri ters sırada işlemeniz gerektiğinde özellikle yararlıdır.
Görev
KolayKitapları hem orijinal hem de ters sırada görüntüleyerek bir okuma listesini analiz eden bir program oluşturun. Programınız şunları yapmalıdır:
- Okuma listesi başlığını temsil eden bir dize (string) girdisi okuyun
- Kitap başlıklarını temsil eden birden fazla dize girdisi okuyun (boş bir dize aldığınızda girdi sona erecektir)
- Kitap listesinin ters çevrilmiş bir görünümünü oluşturmak için
.reversedözelliğini kullanın - Okuma listesi analizini tam olarak aşağıda gösterilen formatta yazdırın
Örneğin, okuma listesi başlığı "Summer Reading" ve kitaplar "1984", "To Kill a Mockingbird", "The Great Gatsby" ise programınız şu çıktıyı vermelidir:
Reading List: Summer Reading
Books in original order: (1984, To Kill a Mockingbird, The Great Gatsby)
Books in reversed order: (The Great Gatsby, To Kill a Mockingbird, 1984)
Total books: 3Eğer okuma listesi başlığı "Quick Reads" ise ve sadece bir kitap "Animal Farm" verilmişse, programınız şu çıktıyı vermelidir:
Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1Programınız, kitapları ters sırada görüntülemek için .reversed özelliğini kullanmalıdır. .reversed özelliğinin bir iterable döndürdüğünü, bu nedenle yazdırdığınızda köşeli parantezler yerine normal parantezlerle görüntüleneceğini unutmayın.
Kopya kağıdı
Orijinal listeyi değiştirmeden liste öğelerini ters sırada görüntülemek için .reversed özelliğini kullanın:
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// Orijinal liste değişmeden kalır
print(numbers); // [1, 2, 3, 4, 5].reversed özelliği bir liste değil, bir iterable döndürür. Onu tekrar bir listeye dönüştürmek için .toList() kullanın.
Kendin dene
import 'dart:io';
void main() {
// Okuma listesi başlığını oku
String? title = stdin.readLineSync();
// Boş dize gelene kadar kitap başlıklarını oku
List<String> books = [];
String? book;
while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
books.add(book);
}
// TODO: Kodunuzu buraya yazın
// Kitap listesinin ters çevrilmiş bir görünümünü oluşturmak için .reversed özelliğini kullanın
// Çıktıyı istenen formatta yazdırın
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1İleri Düzey Liste İşlemleri
Liste Özellikleri: first & lastListe Durumu: isEmpty & isNotEmptyBir Listeyi Tersine ÇevirmeListeye Ekleme: insertListeden Silme: removeWhereListede Bulma: indexOfBir Listeyi SıralamaBir Listeyi KarıştırmaÖzet - Liste Düzenleyici4İleri Seviye Map İşlemleri
Map Üzerinde GezinmeAnahtar ve Değer KontrolüMap Özellikleri: keys & valuesKoşullu Ekleme: putIfAbsentMap'ten Öge Kaldırmaİç İçe Map'lerÖzet - Envanter Güncelleme7İleri Seviye Fonksiyonlar
Anonim FonksiyonlarFonksiyonları Argüman Olarak AktarmaClosure'ları AnlamakÖzyinelemeye GirişÖzyinelemeli Fonksiyon: Geri SayımÖzyinelemeli Fonksiyon: FaktöriyelÖzet - Liste İşleyici10Son Meydan Okumalar
Meydan Okuma: Not SıralayıcıMeydan Okuma: Sesli Harf SayacıMeydan Okuma: FizzBuzz2Fonksiyonel Liste İşlemleri
'map' ile Dönüştürme'where' ile Filtreleme'.toList()' Kullanımı'any' ile Koşul Kontrolü'every' ile Koşullar'firstWhere' ile BulmaÖzet - Veri Filtreleme5Proje: Alışveriş Sepeti Hesaplayıcı
Proje KurulumuSepete Ürün Ekleme3Kümeler
Küme Nedir?Küme OluşturmaKümelere Eleman Ekleme ve ÇıkarmaKüme İçinde Eleman KontrolüListeyi Kümeye DönüştürmeKüme BirleşimiKüme KesişimiKüme FarkıÖzet - Benzersiz Davetli Listesi