Skip to content
Snippets Groups Projects

Master

2 files
+ 151
20
Compare changes
  • Side-by-side
  • Inline

Files

package fr.univamu.progav.td1;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@@ -8,24 +9,39 @@ public class ExercicesBoucles {
public interface Person {
int age();
String name();
boolean isFemale();
Person mother();
Person father();
List<Person> children();
}
// Exercice : compléter toutes les méthodes suivantes
public static boolean hasFemale(List<Person> persons) {
for (Person person : persons) {
if (person.isFemale()) {
return true;
}
}
return false;
}
// retourne vrai si la liste contient un individu homme et mineur (moins de 18 ans)
public static boolean containsMinorMale(List<Person> persons) {
for (Person person : persons) {
if (!person.isFemale() && person.age() < 18) {
return true;
}
}
return false;
}
@@ -33,39 +49,82 @@ public class ExercicesBoucles {
// retourne un individu de la liste, femme et ayant au moins un enfant,
// null si aucun individu ne convient
public static Person findMother(List<Person> persons) {
for (Person person : persons) {
if (person.isFemale() && person.children().size() > 0) {
return person;
}
}
return null;
}
// retourne vrai si tous les individus de la liste sont majeurs (âge >= 18)
public static boolean areAllMajor(List<Person> persons) {
return false;
for (Person person : persons) {
if (person.age() < 18) {
return false;
}
}
return true;
}
// trouve un individu de la liste ayant un enfant, et retourne l'âge
// de cet enfant, ou -1 si aucun individu n'a d'enfant.
public static int ageOfSomeChild(List<Person> persons) {
return 0;
for (Person person : persons) {
if (person.children().size() > 0) {
return person.children().get(0).age();
}
}
return -1;
}
// retourne la liste de tous les hommes de la liste
public static List<Person> males(List<Person> persons) {
return List.of();
List<Person> males = new ArrayList<>();
for (Person person : persons) {
if (!person.isFemale()) {
males.add(person);
}
}
return males;
}
// retourne le nombre de femmes de la liste
public static int nbFemales(List<Person> persons) {
return 0;
int count = 0; // Compteur de femmes
for (Person person : persons) {
if (person.isFemale()) {
count++;
}
}
return count;
}
// retourne la personne la plus agée de la liste,
// null si la liste est vide
public static Person eldest(List<Person> persons) {
return null;
if (persons.isEmpty()) {
return null;
}
Person eldestPerson = persons.get(0);
for (Person person : persons) {
if (person.age() > eldestPerson.age()) {
eldestPerson = person; // Mettre à jour la personne la plus âgée
}
}
return eldestPerson;
}
@@ -73,19 +132,43 @@ public class ExercicesBoucles {
// personnes de la liste, dans l'ordre, séparés par une espace.
public static String names(List<Person> persons) {
StringBuilder builder = new StringBuilder();
builder.append("Ceci est ajouté");
builder.append(" en fin de chaîne.");
return builder.toString(); // -> "Ceci est ajouté en fin de chaîne."
for (Person person : persons) {
builder.append(person.name()).append(" ");
}
String result = builder.toString().trim(); // Supprime l'espace supplémentaire à la fin
return result;
}
// retourne vrai si les nombres d'hommes et de femmes sont égaux.
public static boolean hasAsManyMalesAsFemales(List<Person> persons) {
return false;
int maleCount = 0;
int femaleCount = 0;
for (Person person : persons) {
if (person.isFemale()) {
femaleCount++;
} else {
maleCount++;
}
}
return maleCount == femaleCount;
}
// retourne l'âge moyen des individus de la liste (0 si la liste est vide)
public static double averageAge(List<Person> persons) {
return 0;
if (persons.isEmpty()) {
return 0;
}
double totalAge = 0;
for (Person person : persons) {
totalAge += person.age();
}
return totalAge / persons.size();
}
}
Loading