user9658240
user9658240

Reputation:

Return 2 values from a function - java

I'm trying to make a list of online users and offline users.

But since I can't return 2 arrayLists from a function, how can I do this?

Controller

  @RequestMapping(value = "/loggedUsers", method = RequestMethod.GET)
public @ResponseBody List<User> getLoggedUsers() {
    Map<String,User> users = User.getUsers().stream().collect(Collectors.toMap(User::getUsername, Function.identity()));
    List<User> onlineUsers = new ArrayList<>();
    for(String username : activeUsers.getUsers()) {
        User user = users.get(username);
        if(user != null) {
            onlineUsers.add(user);
        }
    }
    return onlineUsers;
}

Now I need the rest (not online users) and put mark them as offline

AJAX

 //get loggedUsers
$.ajax({
    url: '/loggedUsers',
    type: 'get',
    success: function (loggedUsers) {
        console.log(loggedUsers);    
    }
});

Upvotes: 0

Views: 71

Answers (1)

Mohammad Ali Rony
Mohammad Ali Rony

Reputation: 4915

You can make an object where two property of 2 arrayLists

ResponseObject
{
   List<User> onlineUsers; 
   List<User> offlineUsers;
}

Return this object as response.

in javascript response, you will get this 2 arrayLists

 //get loggedUsers
$.ajax({
    url: '/loggedUsers',
    type: 'get',
    success: function (Users) {
        console.log(Users.onlineUsers);
        console.log(Users.offlineUsers);   
    }
});

Upvotes: 1

Related Questions