以下是一个示例方法,可以对任意参数化类型的Set进行排序并返回一个TreeSet:
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
public class SetSorter {
public static Set sortSet(Set set, Comparator super T> comparator) {
TreeSet sortedSet = new TreeSet<>(comparator);
sortedSet.addAll(set);
return sortedSet;
}
public static void main(String[] args) {
Set set = new HashSet<>();
set.add(5);
set.add(3);
set.add(1);
set.add(4);
set.add(2);
Set sortedSet = sortSet(set, Integer::compareTo);
System.out.println(sortedSet); // 输出 [1, 2, 3, 4, 5]
}
}
在上面的示例中,sortSet
方法接受一个参数化类型的Set以及一个比较器(Comparator)。它使用TreeSet作为排序容器,并将Set中的元素添加到TreeSet中。最后,它返回排序后的TreeSet。
在main
方法中,我们创建一个整数Set并添加一些元素。然后,我们调用sortSet
方法,传递整数比较器Integer::compareTo
。最后,我们输出排序后的Set,得到正确排序的结果。