我习惯于使用PHP进行编程,现在学习Java,整个Collections API对我来说都是全新的东西。
我进行了搜索并了解了一些遍历HashSet的方法,例如使用:
Source和许多其他在互联网上很容易找到的
但是最好的迭代方式是什么,或者两者之间的区别是什么,比如我应该在不同的情况下使用哪种方式。
答案 0 :(得分:4)
每个都有其自身的优点和缺点。在set本身上使用iterator()和Java 8 forEachRemaining()方法与简单的forEach()并没有真正的区别,但是还需要调用另一种方法。
如果要在集合中的每一部分上调用一个简单的方法,则在带有lambda表达式的Set上使用forEach()很棒。
for(T项目:someSet){}如果您对每件东西都做很多事情,或者您对它们所做的事情有副作用,那会更干净。
如果没有副作用,但是假设您要在集合中搜索特定属性或一组特定属性,我建议您使用Stream API,您可以在其中进行filter(),map( ),查找或收集到其他类型的集合。
无论您使用什么,主要取决于您个人所需要的。不同的方法在实现上可能确实有所不同,但是大多数时候它们可以做相同的事情。主要取决于团队中的品味或标准
答案 1 :(得分:0)
如果将很多对象放入 Collection 并希望进行迭代,则应考虑使用 List 接口,因为对于来说,Big-O迭代速度更快在这种情况下列出。谈论 HashSet 时,它仅取决于您的代码样式和要在 HashSet
中的元素上执行的任务。