// JoukkoEsimerkki.java SJ import fi.joensuu.cs.tra.*; import java.util.Iterator; import java.util.Random; public class JoukkoEsimerkki { public static void main(String[] args) { // esimerkkijoukkojen koko int N = 8; if (args.length > 0) N = Integer.valueOf(args[0]); // muutama esimerkkijoukko Set S1 = new Set(); Set S2 = new Set(); Set S3 = new Set(); // satunnaisia alkioita joukkoihin Random r = new Random(42); Integer x, y, z; for (int i = 0; i < N; i++) { x = r.nextInt(N*2); y = r.nextInt(N*2); z = r.nextInt(N*2); S1.add(x); S2.add(y); S3.add(z); } // tulostus System.out.println("S1: " + S1); System.out.println("S2: " + S2); System.out.println("S3: " + S3); // joukko-operaatiot System.out.println("S1 | S2: " + S1.union(S2)); System.out.println("S1 | S3: " + S1.union(S3)); System.out.println("S1 & S2: " + S1.intersection(S2)); System.out.println("S1 & S3: " + S1.intersection(S3)); System.out.println("S1 & S2 & S3: " + S1.intersection(S2).intersection(S3)); System.out.println("S1 \\ S2: " + S1.difference(S2)); System.out.println("S2 \\ S1: " + S2.difference(S1)); System.out.println("S1 \\ S3: " + S1.difference(S3)); System.out.println("S1 \\ (S2 | S3): " + S1.difference(S2.union(S3))); System.out.println("(S1 & S2) == (S2 & S1): " + S1.intersection(S2).equals(S2.intersection(S1))); // foreach -läpikäynti int sum = 0; for (Integer a : S1) sum += a; System.out.println("S1 sum: " + sum); // iterator -läpikäynti sum = 0; Iterator si = S1.iterator(); while (si.hasNext()) { int a = si.next(); sum += a; } System.out.println("S1 sum: " + sum); // kahden joukon läpikäynti rinnan sum = 0; Iterator si1 = S1.iterator(); Iterator si2 = S2.iterator(); while (si1.hasNext() && si2.hasNext()) { int a1 = si1.next(); int a2 = si2.next(); sum += a1*a2; } System.out.println("S1 S2 pistetulo: " + sum); // kahden joukon läpikäynti sisäkkäin sum = 0; si1 = S1.iterator(); while (si1.hasNext()) { si2 = S2.iterator(); int a1 = si1.next(); while (si2.hasNext()) { int a2 = si2.next(); sum += a1*a2; } } System.out.println("S1*S2 sisäkkäin: " + sum); } // main() } // class JoukkoEsimerkki