Последний индекс пользовательского ListArray, равный указанному c значению - PullRequest
0 голосов
/ 26 марта 2020

У меня есть список, содержащий сообщения чата (List<Chat>).

Список содержит message, senderID and sentTime. Это выглядит следующим образом:

enter image description here

Я пытаюсь найти индексы, где сообщение равно "Do you confirm that you received..."

I пытался использовать chats.indexOf("Do you confirm that you received...")

Однако я продолжаю получать -1.

Что я делаю не так? В частности, если в этом чате несколько сообщений, равных "Do you confirm that you received...", я бы хотел найти последний индекс.

Спасибо

1 Ответ

0 голосов
/ 26 марта 2020

chats.indexOf("Do you confirm that you received...") не работает, потому что то, что вы ищете в chats.message и сравнить его со значением, которое вы хотите.

Вы можете использовать что-то вроде:

Kotlin:

val chat: Chat = chats.filter { it.message == "Your message" }

Java:

List<Chat> chatByMessage = chats.stream()   // convert list to stream
                .filter(chat -> "MyMessage".equals(chat.message))
                .collect(Collectors.toList());
...