5

将集合放入地图的最快方法是什么?

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 转换为数组并循环遍历数组并将它们一一放入。有没有更好的方法来做到这一点?

4

2 回答 2

9

一种选择是:

for (T value : set) {
  map.put(value, 1);
}
于 2012-10-31T08:35:57.797 回答
2

最快的方法是根本不将其放入新的 Map 中,而是创建您自己的 Map 接口的动态实现,该接口动态地将请求委托给集合实例。当然,这仅在您需要地图的实时视图或集合不可变时才有效。此外,根据您在 Map 上所需的 API,这可能会成为很多工作,但是 AbstractMap 将在这里为您提供很多帮助。

于 2012-10-31T08:40:43.597 回答