我有一个函数,它有 2 个不同类型的参数输入列表。为了优化,我想创建一个最小列表类型的 HashSet/Hashtable (其中之一)。 java中有没有办法在运行时决定Set的类型
?
当前代码:
public static void innerJoinHash(List<SportsMan> sportsMans, List<Sport> sportList) {
if (sportsMans.size() < sportList.size()) {
Set<SportsMan> set = new HashSet<SportsMan>();
} else {
Set<Sport> set = new HashSet<Sport>();
}
}
我想做的事:
public static void innerJoinHash(List<SportsMan> sportsMans, List<Sport> sportList) {
Set< // some magic //> set
if (sportsMans.size() < sportList.size()) {
set = new HashSet<SportsMan>();
} else {
set = new HashSet<Sport>();
}
}
最佳答案
您可以尝试使用 Java 泛型。 Set<E> customSet=new HashSet<E>();
这是一种在运行时使用分配数据类型的方法。
public static void innerJoinHash(List<SportsMan> sportsMans, List<Sport> sportList) {
Set set = new HashSet();
if (sportsMans.size() < sportList.size()) {
set.addAll(sportsMans)
} else {
set.addAll(sportList);
}
}
关于java - 如何构造动态类型的哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20417829/