有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

基于作者姓名的java Jersey消息筛选应返回多个值

public Message getMessageByAuthor(String authorName) { 
    List<Message> nameList = new ArrayList<Message>(messages.values());
    Message message = null;
    if (!authorName.isBlank()) {
        Iterator<Message> iterator = nameList.iterator();
        while (iterator.hasNext()) {
            message = iterator.next();
            if (message.getMessageAuthor().contains(authorName)) {
                return message;
            }
        }
    }
    return message;
}

共 (1) 个答案

  1. # 1 楼答案

    正如评论中提到的Triby,您应该创建一个新列表,添加符合条件的元素,然后返回该列表,以便在匹配的情况下获得多个元素

    public List<Message> getMessageByAuthor(String authorName) { 
        List<Message> nameList = new ArrayList<Message>(messages.values());
        List<Message> responseMessageList = new ArrayList<>();
        Message message = null;
        if (!authorName.isBlank()) {
            Iterator<Message> iterator = nameList.iterator();
            while (iterator.hasNext()) {
                message = iterator.next();
                if (message.getMessageAuthor().contains(authorName)) {
                     responseMessageList.add(message);
                }
            }
        }
        return responseMessageList;
    }