Küme Oluşturma
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 18 / 65.
Artık bir Set'in ne olduğunu anladığınıza göre, nasıl oluşturulacağını öğrenelim. Dart'ta, matematiksel bir küme yazmaya benzer şekilde, öğeleri virgülle ayrılmış süslü parantezler {} kullanarak bir Set oluşturursunuz.
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}Bu söz dizimini bir Map oluşturmakla karıştırmamak önemlidir. Her ikisi de süslü parantez kullansa da, bir Set yalnızca değerler içerirken, bir Map iki nokta üst üste ile ayrılmış anahtar-değer çiftleri içerir. Boş bir Set, boş bir Map'ten ayırt edilebilmesi için bir türle açıkça bildirilmelidir.
Set<String> emptySet = <String>{}; // Boş Set
Map<String, int> emptyMap = {}; // Boş MapAyrıca yinelenen değerlere sahip bir Set oluşturabilirsiniz, ancak yinelenenlerin otomatik olarak kaldırılacağını ve nihai koleksiyonda yalnızca benzersiz öğelerin kalacağını unutmayın.
Görev
KolayBir blog yazısı için benzersiz etiketlerden oluşan bir Set (Küme) oluşturarak blog etiketleme sistemini yöneten bir program oluşturun. Programınız şunları yapmalıdır:
- Blog yazısı başlığını temsil eden bir dize (string) girdisi okuyun
- Yazıya eklenecek etiketleri temsil eden birden fazla dize girdisi okuyun (girdi
"done"ifadesini aldığınızda sona erecektir) - Benzersiz etiketleri saklamak için dizelerden oluşan bir Set oluşturun
- Her etiketi Set'e ekleyin (yinelenenler otomatik olarak kaldırılacaktır)
- Blog etiketleme sonuçlarını aşağıda gösterilen tam formatta yazdırın
Örneğin, blog başlığı "Introduction to Dart Programming" ve etiketler "programming", "dart", "tutorial", "programming", "beginner" ise programınız şu çıktıyı vermelidir:
Blog Post: Introduction to Dart Programming
Tags added: [programming, dart, tutorial, programming, beginner]
Unique tags: {programming, dart, tutorial, beginner}
Total unique tags: 4
Status: Blog post tagged successfullyEğer blog başlığı "Web Development Tips" ve etiketler "web", "html", "css", "web", "html", "javascript" ise programınız şu çıktıyı vermelidir:
Blog Post: Web Development Tips
Tags added: [web, html, css, web, html, javascript]
Unique tags: {web, html, css, javascript}
Total unique tags: 4
Status: Blog post tagged successfullyEğer blog başlığı "Getting Started" ve etiketler "guide", "basics" ise programınız şu çıktıyı vermelidir:
Blog Post: Getting Started
Tags added: [guide, basics]
Unique tags: {guide, basics}
Total unique tags: 2
Status: Blog post tagged successfullyProgramınız süslü parantez {} sözdizimini kullanarak bir Set oluşturmalı ve Set'lerin yinelenenleri kaldırmayı nasıl otomatik olarak yönettiğini göstermelidir. Başlangıçta neyin girildiğini göstermek için tüm girdi etiketlerini önce bir listede saklayın, ardından benzersiz etiketleri göstermek için Set'i oluşturun. Set, içeriğini süslü parantezli standart Set formatında görüntülemelidir.
Kopya kağıdı
Virgülle ayrılmış öğelerle süslü parantez {} kullanarak bir Set oluşturun:
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}Boş Set'ler için, boş Map'lerden ayırt etmek amacıyla türü açıkça belirtin:
Set<String> emptySet = <String>{}; // Boş Set
Map<String, int> emptyMap = {}; // Boş MapSet'ler yinelenen değerleri otomatik olarak kaldırır ve yalnızca benzersiz öğeleri tutar.
Kendin dene
import 'dart:io';
void main() {
// Blog yazısı başlığını oku
String? title = stdin.readLineSync();
// "done" girilene kadar etiketleri oku
List<String> allTags = [];
String? tag;
while ((tag = stdin.readLineSync()) != "done") {
if (tag != null) {
allTags.add(tag);
}
}
// TODO: Kodunuzu buraya yazın
// Benzersiz etiketleri elde etmek için etiket listesinden bir Set oluşturun
// Toplam benzersiz etiket sayısını hesaplayın
// Sonuçları yazdır
print("Blog Post: $title");
print("Tags added: $allTags");
// Benzersiz etiketleri Set formatında yazdır
// Toplam benzersiz etiket sayısını yazdır
// Durum mesajını yazdır
}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