当处理大量数据时,我经常发现自己会做以下事情:
HashSet<String> set = new HashSet<String> ();
//Adding elements to the set
ArrayList<String> list = new ArrayList<String> (set);
类似于将集合的内容“倒入”列表中。我通常这样做,因为我添加的元素经常包含我想要去除的重复项,这似乎是一种简单的去重方法。
仅考虑这个目标(避免重复),我也可以这样写:
ArrayList<String> list = new ArrayList<String> ();
// Processing here
if (! list.contains(element)) list.add(element);
//More processing here
因此没有必要将这个集合“倒入”列表中。但是,在插入每个元素之前,我会进行一项小检查(我假设HashSet也会这样做)
这两种可能性中哪一种明显更有效?