Valeur maximale de la liste de la liste en Java

Adelmo Junior:

Je suis en train d'obtenir la valeur la plus élevée en appliquant un filtre

J'ai un objet qui contient un objet d'équipe et une liste de cartes. donc je dois obtenir la valeur la plus élevée de la liste des cartes dans l'attribut de poids de la carte, où l'équipe est A, et le retour du joueur.

public class Player {
  private String name;
  private List<Card> cards;
  private Team team;
  // getters and setters
}

public class Team {
  private int id;
  private int points;
  // getters and setters
}

public class Card {
  private int weightCard;
  // getters and setters
}

le code que je tentais d'exécuter

int maxPointsTeamA = players
    .stream()
    .filter( x -> x.getTeam().equals(teamA))
    .map(n -> n.getCards()
    .stream()
    .map( c -> c.getWeigthCard()).max(Comparator.naturalOrder()));

Les joueurs une liste des joueurs (4 joueurs)

Erreur:

Type mismatch: cannot convert from Stream<Object> to int

aidez-moi s'il vous plaît, il est pour le travail scolaire

rzwitserloot:

Remplacez vos deux mapappels à mapToInt, pour commencer. Ensuite , vous n'avez pas besoin Comparator.naturalOrder().

En second lieu, votre premier appel carte contient ce lambda:

n -> n.getCards().stream().map(c -> c.getWeightCard()).

Cela tourne un seul « n », quel qu'il soit, dans un flux de ce que les rendements weightcard ( ce qui est le code que vous avez collé). Le point de mapest de transformer une chose en une autre chose, pas un flux de choses. Vous pouvez utiliser flatmappour cela au lieu, on peut donc supposer, d' abord flatMap à un flux de cartes, la carte alors que pour un int via la fonction weightcard, et vous pouvez max.

Mettre tous ensemble:

int maxPointsTeamA = players
            .stream()
            .filter(x -> x.getTeam().equals(teamA))
            .flatMap(n -> n.getCards().stream())
            .mapToInt(c -> c.getWeightCard())
            .max()
            .orElse(0);

EDIT: Ah, oui, j'ai oublié max () retourne un OptionalInt; fixé.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=292812&siteId=1
conseillé
Classement