class _Sets {

    public static <T> SortedSet<T> intersectSorted(@Nullable SortedSet<T> a, @Nullable SortedSet<T> b) {
        if(a==null && b==null) {
            return Collections.emptySortedSet();
        }
        if(a==null || b==null) {
            return Collections.emptySortedSet();
        }
        return a.stream()
                .filter(Objects::nonNull)
                .filter(b::contains)
                .collect(toUnmodifiableSorted());
    }

}