Привет всем. Подскажите какой самый простой способ вернуть индекс элемента в списке? Два метода написал но что-то не нравятся оба ))
private Map.Entry<Integer, SelenideElement> getSuitableElement(ElementsCollection elementsCollection, String transactionName) throws Exception {
AtomicInteger i = new AtomicInteger();
return elementsCollection
.stream()
.collect(Collectors.toMap(e -> i.getAndIncrement(), e -> e))
.entrySet()
.stream()
.filter(data -> data.getValue().getText().equals(transactionName))
.findFirst()
.orElseThrow(() -> new Exception("Транзакция с именем - " + transactionName + " - не существует"));
}
}
И метод 2 *private int getSuitableElementNumber(ElementsCollection elementsCollection, String text) throws Exception {
int elementNumber = Integer.parseInt("null");
for (int i = 0; i < elementsCollection.size(); i++) {
if (elementsCollection.get(i).getText().equals(text)){
elementNumber = i;
}
}
if (elementNumber >= 0) {
return elementNumber;
} else {
throw new Exception("В списке нет счета с названием " + text);
}
}*