将一组放入地图的最快方法是什么?
public class mySet<T>
{
private Map<T, Integer> map;
public mySet(Set<T> set)
{
Object[] array = set.toArray();
for(int i =0; i< array.length; i++)
{
T v = (T)array[i];
map.put(v, 1);
}
}
}
现在,我只是将set转换为数组并循环遍历数组并将它们逐个放入。有没有更好的方法呢?
答案 0 :(得分:9)
一种选择是:
for (T value : set) {
map.put(value, 1);
}
答案 1 :(得分:2)
最快的方法是不将它放入一个新的Map中,而是创建自己的Map接口动态实现,动态地将请求委托给set实例。当然,只有当您需要Map的实时视图或该集合是不可变的时,这才有效。此外,根据您在Map上需要的API,这可能会成为很多工作,但是AbstractMap将在这里为您提供很多帮助。