Лучший способ перебрать HashSet в Java - PullRequest
0 голосов
/ 16 ноября 2018

Я привык к программированию на PHP, и теперь я изучаю Java, и весь API-интерфейс Collections - это совершенно новое для меня.

Я искал и узнал некоторые способы итерации поHashSet, например, с использованием:

  • Java 8 forEach и лямбда-выражения.
  • iterator ().
  • iterator () и Java 8 forEachRemaining ().
  • простой цикл для каждого.

Источник и многие другие, которые легко найти в интернете.

Но какой лучший способ перебрать его?или в чем разница между теми, которые я должен использовать в разных сценариях.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Каждый имеет свои преимущества и недостатки.Использование метода iterator () и Java 8 forEachRemaining () в действительности не отличается от простого forEach () в самом наборе, но требует вызова еще одного метода.

Использование forEach () в наборе сЛямбда-выражения хороши, если вы хотите один простой вызов метода для каждой части в наборе.

for (T item: someSet) {} будет чище, если вы делаете много вещей для каждой части, или еслиЕсть вещи, которые вы делаете с ними, есть побочные эффекты.

, если побочных эффектов нет, но давайте предположим, что вы хотите найти определенное свойство или набор определенных свойств в наборе, ярекомендую использовать Stream API, где вы можете фильтровать (), отображать (), находить или собирать данные для других типов коллекций.

Все, что вы используете, в основном зависит от того, что вам лично нравится.Разные способы могут быть действительно разными в реализации, но в большинстве случаев они могут делать одно и то же.Это в основном сводится к вкусу или стандартам в команде

0 голосов
/ 16 ноября 2018

Если вы помещаете множество объектов в Collection и хотите выполнить итерацию, используйте интерфейс List , потому что Big-O для итерации быстрее для Lists в этой ситуации. Говоря о HashSet , это просто зависит от вашего стиля кода и задач, которые вы хотите выполнить с элементами HashSet

...