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ığına göre, şimdi nasıl oluşturulacağını öğrenelim. Dart'ta, matematiksel bir küme yazmaya benzer şekilde, elemanları virgülle ayırarak küme parantezleri {} kullanıp bir Set oluşturursun.
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}Bu sözdizimini Map oluşturmaktan ayırmak önemlidir. Her ikisi de süslü parantez kullansa da Set yalnızca değerler içerirken 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 türü belirtilerek açıkça tanımlanmalıdır.
Set<String> emptySet = <String>{}; // Boş küme
Map<String, int> emptyMap = {}; // Boş haritaYinelenen değerlere sahip bir Set de oluşturabilirsin, ancak yinelenenlerin otomatik olarak kaldırılacağını ve son koleksiyonda yalnızca benzersiz öğelerin kalacağını unutma.
Elindeki bir listeden küme oluşturmak için toSet() metodunu çağır:
List<String> tags = ['dart', 'web', 'dart'];
Set<String> unique = tags.toSet();
print(unique); // {dart, web}Görev
KolayBir blog gönderisi için benzersiz etiketlerden bir Set oluşturarak blog etiketleme sistemini yöneten bir program oluştur. Programın şunları yapmalıdır:
- Blog gönderisinin başlığını temsil eden bir dize girdisi oku
- Gönderiye eklenecek etiketleri temsil eden birden fazla dize girdisi oku (
"done"alındığında girdi sona erecektir) - Benzersiz etiketleri depolamak için bir dize Set'i oluştur
- Her etiketi Set'e ekle (yinelenenler otomatik olarak kaldırılır)
- Blog etiketleme sonuçlarını aşağıda gösterilen biçimin aynısıyla yazdır
Örneğin, blog başlığı "Introduction to Dart Programming" ve etiketler "programming", "dart", "tutorial", "programming", "beginner" ise programın ş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 successfullyBlog başlığı "Web Development Tips" ve etiketler "web", "html", "css", "web", "html", "javascript" ise programın ş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 successfullyBlog başlığı "Getting Started" ve etiketler "guide", "basics" ise programın ş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 etiket listesinden bir Set oluşturmalı ve Set'lerin yinelenenleri otomatik olarak nasıl kaldırdığını göstermelidir. Önce girilen tüm etiketleri, başlangıçta girilenleri göstermek için bir listede sakla; ardından benzersiz etiketleri göstermek için Set'i oluştur. Set, içeriğini süslü parantezlerle standart Set biçiminde göstermelidir.
Kendin dene
import 'dart:io';
void main() {
// Blog yazısının 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: Kodunu buraya yaz
// Benzersiz etiketleri elde etmek için etiketler listesinden bir Set oluştur
// Toplam benzersiz etiket sayısını hesapla
// Sonuçları çıktı olarak ver
print("Blog Post: $title");
print("Tags added: $allTags");
// Benzersiz etiketleri Set biçiminde 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 ListesiKendi başına pratik yap: Online Dart derleyicisi