class EvenPredicate implements Predicate
class Over50Predicate implements Predicate
class MapTimes10 implements Function
class MapMod10 implements Function
public class SetDemo
1: //SetDemo.java
3: import java.util.function.Function;
4: import java.util.function.Predicate;
6: class EvenPredicate implements Predicate<Integer>
7: {
8: public boolean test(Integer value)
9: {
10: return (int)value % 2 == 0;
11: }
12: }
14: class Over50Predicate implements Predicate<Integer>
15: {
16: public boolean test(Integer value)
17: {
18: return value > 50;
19: }
20: }
22: class MapTimes10 implements Function<Integer, Integer>
23: {
24: public Integer apply(Integer value)
25: {
26: return value * 10;
27: }
28: }
30: class MapMod10 implements Function<Integer, Integer>
31: {
32: public Integer apply(Integer value)
33: {
34: return value % 10;
35: }
36: }
38: public class SetDemo
39: {
40: private static void showSet
41: (
42: Set set,
43: String setName
44: )
45: {
46: System.out.printf("%s: ", setName);
47: for (Integer element : set)
48: {
49: System.out.print(element.toString() + " ");
50: }
51: System.out.println();
52: }
54: public static void main(String[] args)
55: {
56: int[] setAElements = { 95, 64, 19, 67, -24, 90 };
57: int[] setBElements = { 67, 90, 67, 42, -84 };
59: Set setA = new Set();
60: for (int element : setAElements)
61: {
62: setA.add(element);
63: }
64: Set setB = new Set();
65: for (int element : setBElements)
66: {
67: setB.add(element);
68: }
70: // Display the 2 sets
71: showSet(setA, "Set A");
72: showSet(setB, "Set B");
74: // Perform union, intersection, and difference of 2 sets
75: showSet(setA.union(setB), "A union B");
76: showSet(setA.intersection(setB), "A intersect B");
77: showSet(setA.difference(setB), "A \\ B");
78: showSet(setB.difference(setA), "B \\ A");
80: // Perform various filter operations
81: EvenPredicate evenPredicate = new EvenPredicate();
82: showSet(setA.filter(evenPredicate), "Set A filtered for evens");
83: showSet(setB.filter(evenPredicate), "Set B filtered for evens");
84: Over50Predicate over50Predicate = new Over50Predicate();
85: showSet
86: (
87: setA.filter(over50Predicate),
88: "Set A filtered for elements > 50"
89: );
90: showSet
91: (
92: setB.filter(over50Predicate),
93: "Set B filtered for elements > 50"
94: );
96: // Perform various map operations
97: MapTimes10 mapTimes10 = new MapTimes10();
98: showSet(setA.map(mapTimes10), "Set A mapped * 10");
99: showSet(setB.map(mapTimes10), "Set B mapped * 10");
100: MapMod10 mapMod10 = new MapMod10();
101: showSet(setA.map(mapMod10), "Set A mapped % 10");
102: showSet(setB.map(mapMod10), "Set B mapped % 10");
103: }
104: }