>>174
適当に書いてみた。

import java.util.*;

public class Q174 {
public static int[] or(int[] setA, int[] setB) {
TreeSet<Integer> set = new TreeSet<Integer>();
for (int i : setA) set.add(i);
for (int i : setB) set.add(i);
int i = 0, result[] = new int[set.size()];
for (int j : set) result[i++] = j;
return result;
}

public static int[] and(int[] setA, int[] setB) {
HashSet<Integer> set1 = new HashSet<Integer>();
TreeSet<Integer> set2 = new TreeSet<Integer>();
for (int i : setA) set1.add(i);
for (int i : setB) if (set1.contains(i)) set2.add(i);
int i = 0, result[] = new int[set2.size()];
for (int j : set2) result[i++] = j;
return result;
}

public static void main(String[] args) {
int[] setA = { 1, 2, 4, 7, 9 };
int[] setB = { 1, 3, 5, 7, 10 };
System.out.println("和集合:A∪B=" + Arrays.toString(or(setA, setB)));
System.out.println("積集合:A∩B=" + Arrays.toString(and(setA, setB)));
}
}