Kümelere Eleman Ekleme ve Çıkarma
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 19 / 65.
Bir Set nesnesine sahip olduğunuzda, yeni öğeler ekleyerek veya mevcut olanları kaldırarak içeriğini sık sık değiştirmeniz gerekecektir. add() ve remove() yöntemleri, kümenizin öğelerini yönetmek için basit yollar sunar.
add() yöntemi, kümeye yeni bir öğe eklemeye çalışır. Ancak, kümeler yalnızca benzersiz değerleri sakladığından, zaten var olan bir öğeyi eklemeye çalışırsanız, yöntem hiçbir şey yapmaz; herhangi bir hata oluşmaz ve küme değişmeden kalır.
Set<String> usernames = {'alice', 'bob', 'charlie'};
usernames.add('diana'); // 'diana' başarıyla eklenir
usernames.add('alice'); // Hiçbir şey yapmaz - 'alice' zaten mevcut
print(usernames); // {alice, bob, charlie, diana}remove() yöntemi, silmek istediğiniz değeri alıp kümeden çıkararak çalışır. Eğer öğe kümede mevcut değilse, yöntem hiçbir şey yapmaz; bu da onu önceden kontrol etmeden kullanmayı güvenli hale getirir.
usernames.remove('bob'); // 'bob'u kaldırır
usernames.remove('unknown'); // Hiçbir şey yapmaz - öğe bulunamadı
print(usernames); // {alice, charlie, diana}Görev
KolayBir proje ekibine yeni ekip üyeleri ekleyerek ve aktif olmayanları çıkararak bir ekip iş birliği sistemini yöneten bir program oluşturun. Programınız şunları yapmalıdır:
- Proje adını temsil eden bir dize (string) girdisi okuyun
- Başlangıçtaki ekip üyelerini temsil eden birden fazla dize girdisi okuyun (girdi
"initial_done"değerini aldığınızda sona erecektir) - Eklenecek yeni üyeleri temsil eden birden fazla dize girdisi okuyun (girdi
"add_done"değerini aldığınızda sona erecektir) - Çıkarılacak üyeleri temsil eden birden fazla dize girdisi okuyun (girdi
"remove_done"değerini aldığınızda sona erecektir) - Başlangıçtaki ekip üyeleriyle bir Set (Küme) oluşturun
- Her bir yeni üyeyi ekibe eklemek için
add()metodunu kullanın - Belirtilen her bir üyeyi ekipten çıkarmak için
remove()metodunu kullanın - Ekip yönetim sonuçlarını tam olarak aşağıda gösterilen formatta yazdırın
Örneğin, proje adı "Mobile App Development", başlangıç üyeleri "Alice", "Bob", "Charlie", eklenecek yeni üyeler "Diana", "Alice", "Eve" ve çıkarılacak üyeler "Bob", "Frank" ise programınızın çıktısı şu şekilde olmalıdır:
Project: Mobile App Development
Initial team: {Alice, Bob, Charlie}
Adding new members: [Diana, Alice, Eve]
After adding members: {Alice, Bob, Charlie, Diana, Eve}
Removing members: [Bob, Frank]
Final team: {Alice, Charlie, Diana, Eve}
Team size: 4
Status: Team updated successfullyEğer proje adı "Website Redesign", başlangıç üyeleri "John", "Sarah", eklenecek yeni üyeler "Mike", "John" ve çıkarılacak üyeler "Sarah", "Unknown" ise programınızın çıktısı şu şekilde olmalıdır:
Project: Website Redesign
Initial team: {John, Sarah}
Adding new members: [Mike, John]
After adding members: {John, Sarah, Mike}
Removing members: [Sarah, Unknown]
Final team: {John, Mike}
Team size: 2
Status: Team updated successfullyEğer proje adı "Data Analysis", başlangıç üyeleri "Emma", eklenecek yeni üyeler "Tom", "Lisa" ve çıkarılacak üye "Emma" ise programınızın çıktısı şu şekilde olmalıdır:
Project: Data Analysis
Initial team: {Emma}
Adding new members: [Tom, Lisa]
After adding members: {Emma, Tom, Lisa}
Removing members: [Emma]
Final team: {Tom, Lisa}
Team size: 2
Status: Team updated successfullyProgramınız, zaten var olan bir üyeyi eklemeye çalışırken add() metodunun hiçbir şey yapmadığını ve var olmayan bir üyeyi çıkarmaya çalışırken remove() metodunun hiçbir şey yapmadığını göstermelidir. Hangi işlemlerin denendiğini göstermek için girdi listelerini saklayın, ardından Set'lerin benzersiz doğasını kanıtlamak için her işlemden sonra Set içeriğini gösterin.
Kopya kağıdı
Bir Set'e eleman eklemek için add() kullanın. Eğer eleman zaten mevcutsa, hiçbir şey olmaz:
Set<String> usernames = {'alice', 'bob', 'charlie'};
usernames.add('diana'); // 'diana' başarıyla eklenir
usernames.add('alice'); // Hiçbir şey yapmaz - 'alice' zaten mevcut
print(usernames); // {alice, bob, charlie, diana}Bir Set'ten eleman silmek için remove() kullanın. Eğer eleman mevcut değilse, hiçbir şey olmaz:
usernames.remove('bob'); // 'bob'u siler
usernames.remove('unknown'); // Hiçbir şey yapmaz - eleman bulunamadı
print(usernames); // {alice, charlie, diana}Kendin dene
import 'dart:io';
void main() {
// Proje adını oku
String? projectName = stdin.readLineSync();
// Başlangıç ekip üyelerini oku
List<String> initialMembers = [];
String? member;
while ((member = stdin.readLineSync()) != "initial_done") {
initialMembers.add(member!);
}
// Eklenecek yeni üyeleri oku
List<String> membersToAdd = [];
while ((member = stdin.readLineSync()) != "add_done") {
membersToAdd.add(member!);
}
// Çıkarılacak üyeleri oku
List<String> membersToRemove = [];
while ((member = stdin.readLineSync()) != "remove_done") {
membersToRemove.add(member!);
}
// TODO: Kodunuzu aşağıya yazın
// Başlangıç ekip üyeleriyle bir Set oluşturun
// add() metodunu kullanarak yeni üyeleri ekleyin
// remove() metodunu kullanarak üyeleri çıkarın
// Sonuçları istenen formatta yazdırın
print("Project: $projectName");
// Kalan yazdırma ifadelerini buraya ekleyin
}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