我习惯用 PHP 编程,现在我正在学习 Java,整个 Collections API 对我来说都是全新的东西。
我搜索并了解了一些遍历 HashSet 的方法,比如使用:
- Java 8 forEach 和 lambda 表达式。
- 迭代器()。
- iterator() 和 Java 8 forEachRemaining() 方法。
- 简单的 for-each 循环。
Source以及许多其他在互联网上很容易找到的内容。
但是迭代它的最佳方法是什么,或者它们之间有什么区别,比如我应该在不同的场景中使用哪一个。
最佳答案
每个都有自己的优点和缺点。使用 iterator() 和 Java 8 forEachRemaining() 方法与 Set 本身的简单 forEach() 并没有真正的不同,但需要调用一个方法。
如果您希望对集合中的每一 block 都调用一个简单的方法,那么在集合上使用带有 lambda 表达式的 forEach() 非常好。
如果你对每个部分做很多事情,或者你对它们做的事情有副作用,那么 for(T item: someSet) {} 会更干净。
如果没有副作用,但假设您想在集合中搜索特定属性或一组特定属性,我建议使用 Stream API,您可以在其中过滤 ()、映射 ( )、查找或收集到其他类型的集合。
无论您使用什么,主要取决于对您个人有吸引力的东西。不同的方式在实现上可能真的不同,但它们大多数时候可以做同样的事情。这主要归结为团队中的品味或标准
关于java - 在 Java 中迭代 HashSet 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53339212/