#java #class #methods #hashset
#Ява #класс #методы #набор хэшей
Вопрос:
Есть класс Prerequisite
, у него есть метод getID()
.
Вместо того, чтобы делать
HashSetlt;intgt; PreIDs = new HashSetlt;gt;(); for(Prerequisite p: pre// HashSet of Prerequisites) { PreIDs.add(p.getID()) }
существует ли более эффективный или более краткий способ вызова метода через хэш-набор?
Комментарии:
1. Более эффективного способа практически не существует. То, что у вас есть, настолько хорошо, насколько это возможно. Вы сами решаете, является ли это более кратким:
pre.forEach(p -gt; preIDs.add(p.getID()))
2. Это хороший лайнер. Мне это нравится
Ответ №1:
Как сказал @ernest_k, на мой взгляд, более эффективного способа тоже нет. Но мы можем записать всю эту логику в одной строке, как показано ниже (если вы используете Java 8 или выше), используя потоки:
Setlt;Integergt; PreIDs = pre.stream() .map(Prerequisite::getID) .collect(Collectors.toSet());