Matematik - Simetrik Fark
Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 32 / 59.
İki kümenin simetrik farkı, ya bir kümede ya da diğerinde ama her ikisinde de olmayan elemanları içeren yeni bir kümedir. Java'da, bunu şu şekilde hesaplayabilirsiniz:
- İlk kümenin ikinci kümeye göre farkını bulma.
- İkinci kümenin birinci kümeye göre farkını bulma.
- Bu iki farkı birleştirme.
İlk olarak, iki HashSet oluşturun:
HashSet<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);
HashSet<Integer> set2 = new HashSet<>();
set2.add(2);
set2.add(3);
set2.add(4);Sonra, aynı değerleri kaldırın:
HashSet<Integer> diff1 = new HashSet<>(set1);
diff1.removeAll(set2); // diff1 [1]'dir
HashSet<Integer> diff2 = new HashSet<>(set2);
diff2.removeAll(set1); // diff2 [4]'türSonra, iki farkı kaldırın:
diff1.addAll(diff2); // diff1 [1, 4]'tür]Görev
Kolay<strong>symmetricDifference</strong> isimli bir metot oluşturun ki bu metot iki tamsayı HashSet'ini giriş olarak alsın, simetrik farklarını hesaplasın ve bunu şu formatta yazdırsın:
Symmetric Difference: [elements]Kopya kağıdı
İki kümenin simetrik farkı, ya bir kümede ya da diğerinde ama her ikisinde de olmayan öğeleri içerir.
Java'da simetrik farkı hesaplamak için:
- İlk kümenin ikinci kümeye göre farkını bulun
- İkinci kümenin ilk kümeye göre farkını bulun
- Bu iki farkı birleştirin
HashSet<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);
HashSet<Integer> set2 = new HashSet<>();
set2.add(2);
set2.add(3);
set2.add(4);
// Remove common elements from each set
HashSet<Integer> diff1 = new HashSet<>(set1);
diff1.removeAll(set2); // diff1 is [1]
HashSet<Integer> diff2 = new HashSet<>(set2);
diff2.removeAll(set1); // diff2 is [4]
// Combine the differences
diff1.addAll(diff2); // diff1 is [1, 4]Kendin dene
import java.util.HashSet;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
public class Main {
public static void symmetricDifference(HashSet<Integer> set1, HashSet<Integer> set2) {
// Kodunuzu buraya yazın
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// İlk küme için JSON dizesini oku (örneğin, [1,2,3])
String set1String = scanner.nextLine();
// İkinci küme için JSON dizesini oku (örneğin, [2,3,4])
String set2String = scanner.nextLine();
Type setType = new TypeToken<HashSet<Integer>>(){}.getType();
HashSet<Integer> set1 = new Gson().fromJson(set1String, setType);
HashSet<Integer> set2 = new Gson().fromJson(set2String, setType);
symmetricDifference(set1, set2);
}
}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Çok Boyutlu Diziler
2D Diziler Temelleri2D Dizi Elemanlarına Erişim2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaJagged Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey2HashMap Bölüm 1
HashMap Nedir?HashMap TanımlamaDeğerlere ErişimAnahtarın Varlığını Kontrol EtmeSözlükleri DeğiştirmeÖzet - HashMap5HashSet Kısım 2
Matematik - HashSet'lerin BirliğiMatematik - HashSet KesişimiMatematik - Küme FarkıMatematik - Simetrik FarkAlt Kümeler ve Üst KümelerKümeler Üzerinde Yineleme3HashMap Bölüm 2
HashMap YöntemlerikeySet() ile YinelemeentrySet() ile Yinelemeİç İçe HashMapÖzet - Depo YönetimiÖzet - HashMap İşlemleri6İleri Akış Kontrolü
Etiketli İfadelerSwitch İfadesiDesen EşleştirmeKoruyucu Yan CümlelerÖzet - Akış Kontrolü9Proje - Benzersiz Kelime Sayacı
Metin Girişi ve DepolamaKelime İşleme