class="java">public int[] operate(int[] a, int[] b, String operation){ Set<Integer> aSet = new TreeSet<>(Arrays.stream(a).boxed().collect(Collectors.toList())); Set<Integer> bSet = new TreeSet<>(Arrays.stream(b).boxed().collect(Collectors.toList())); Set<Integer> resultSet = new TreeSet<>(); switch (operation) { case "UNION": //并集 aSet.addAll(bSet); resultSet = aSet; break; case "INTERSECTION": //交集 resultSet.addAll(aSet); resultSet.retainAll(bSet); break; case "SYMMETRIC DIFFERENCE": //差集 resultSet.addAll(aSet); resultSet.removeAll(bSet); Set<Integer> removeSet = new TreeSet<>(); removeSet.addAll(bSet); removeSet.removeAll(aSet); resultSet.addAll(removeSet); break; default: break; } int[] resultInt = new int[resultSet.size()]; Iterator<Integer> it = resultSet.iterator(); int i = 0; while (it.hasNext()) { resultInt[i] = it.next(); i++; } return resultInt; }
?