Как получить первые 5 значений из LinkedHashSet?
У меня есть LinkedHashSet, который содержит несколько значений.
LinkedHashSet<String> lhs = new LinkedHashSet<String>();
Я хочу перебрать набор значений и отобразить первые пять значений из числа элементов, хранящихся в наборе. Я использовал цикл for для перебора значений и отображения данных, см. Ниже:
for (String sent : lhs) {
text.append(sent);
}
Это выводит все значения, хранящиеся в LinkedHashSet. Какие изменения я должен внести в свой код, чтобы получить только первые 5 значений из набора.
4 ответа
Решение
int i = 0;
for (String sentences : lhs) {
if (i > 4) break;
text.append(sentences);
i++;
}
Вы можете получить свои наборы Iterator
Iterator<String> it = yourSet.iterator();
и перейти к next()
элемент N раз (при условии, что это все еще hasNext()
элемент)
int counter = 0;
while(it.hasNext() && counter++ < N){
String element = it.next();
...
}
Если бы у вас был java8, то я бы предложил что-то вроде этого:
yourLinkedHashSet
.stream()
.limit(5)
.forEachOrdered(text::append);
Объяснение:
stream()
возьмет одну строку за другой из коллекцииlimit(5)
остановит вычисления после обработки пяти элементовforEachOrdered(...)
выполняет действие для каждого элемента, один за другимtext::append
это действие, которое нужно выполнить для каждого элемента
Вы можете использовать subList без объявления счетчика
Iterator<String> iter = new ArrayList<>(lhs).subList(5, lhs.size())
.iterator();
while (iter.hasNext()) {
text.append(iter.next());
}