如何从Java中的类对象列表中获取第一个匹配元素的索引(不使用任何第三方库)

我有一个类对象的列表(List)。我想从列表中获取具有特定用户状态的第一个用户的索引。
public enum UserStatus {
    CREATED("CREATED"),
    AVAILABLE("AVAILABLE"),
    CHECKIN("CHECKIN"),
    CHECKOUT("CHECKOUT"),
    ON_TRIP("ONTRIP"),
    UNAVAILABLE("UNAVAILABLE");
 }

  Class Users{
        private Long id;
        private Long userId;        
        private UserStatus userStatus;
        private Date createdAt;
    }

Class Main{
    public static void main(String args[]){
        List<Users> userList = getListofUser(); // this method will give me list of users

        // here I want to find the first user whose status is AVAILABLE

    }
}
评论
  • eipsum
    eipsum 回复

    您可以使用Java流和可选控件来执行此操作

    Optional<User>firstMatchingUserOptional = userList.stream.filter(user -> user.getUserStatus().equals(UserStatus.AVAILABLE)).findFirst();
    
    if(firstMatchingUserOptional.isPresent())
        int firstMatchingUserIndex = userList.indexOf(firstMatchingUserOptional.get());
    
  • ased
    ased 回复

    您可以使用for循环;

    就像是

    `for(User tempUser : userList){
     if(tempUser.UserStatus.equals(UserStatusTemp)){
     //do job
     break;
      }
      }`