Witam, szukam podpowiedzi jak zsumować wynik trzech średnich z trzech osobnych arraylist, z góry dziękuje :)
- Rejestracja:około 3 lata
- Ostatnio:około 3 lata
- Postów:6
- Rejestracja:ponad 3 lata
- Ostatnio:prawie 3 lata
- Postów:93
Michał Gabor napisał(a):
Witam, szukam podpowiedzi jak zsumować wynik trzech średnich z trzech osobnych arraylist, z góry dziękuje :)
Każda najdalsza podróż zaczyna się od pierwszego kroku.
Co już zrobiłeś?

- Rejestracja:około 8 lat
- Ostatnio:5 minut
- Postów:4884
@Michał Gabor:
Mógłbyś dać więcej szczegółów? Masz problem z policzeniem średniej? Jeśli nie, to zakładam, że Masz metodę przyjmującą, ArrayList
i zwracającą średnią, float
- zsumowanie trzykrotnego wywołania takiej funkcji jest trywialne.
- Rejestracja:około 4 lata
- Ostatnio:około 2 lata
- Lokalizacja:Warszawa
- Postów:1092
- Liczyć średnie dla każdej z 3 list
- Dodajesz te średnie
- ?
- Profit!
- Rejestracja:około 3 lata
- Ostatnio:około 3 lata
- Postów:6
Dziękuje z góry wszystkim za pomoc, uczę się dopiero, musze stworzyć program który:
stwórz program z użyciem HashMap, który będzie przechowywał dane uczniów oraz ich ocen.
Program ma wyświetlać średnią arytmetyczną ocen każdego ucznia.
Wiem już że szedłem w złym kierunku, tworze:
class Gradess, a w nim liste do której mam przypisywać zmienne oceny i dwie metody jedna która dodaje do listy oceny i druga która liczy średnią z tych ocen.
na surowo mam costakiego"
import java.util.;
import java.lang.;
import java.io.*;
class Students {
private String name;
private String surname;
private String number;
public Students(String name, String surname, String number) {
this.name = name;
this.surname = surname;
this.number = number;
}
@Override
public String toString() {
return name + " " + surname + " (" + number + ")";
}
}
class Grades {
List<Double> grades = new ArrayList<>();
void addGrade(Double grade) {
grade.add(grades1);
}
//double getAverge()
}
class Application {
public static void main (String[] args) {
Students student1 = new Students("Jhon", "Nowhere", "number 1234");
Students student2 = new Students("Mike", "Kavinsky", "number 1235");
Students student3 = new Students("Kim", "Kubrick", "number 1236");
Grades grades1 = new Grades();
grades1.addGrade(3.0);
grades1.addGrade(5.0);
grades1.addGrade(2.0);
grades1.addGrade(4.0);
Grades grades2 = new Grades();
grades2.addGrade(5.0);
grades2.addGrade(6.0);
Grades grades3 = new Grades();
grades3.addGrade(3.0);
grades3.addGrade(5.0);
grades3.addGrade(5.0);
HashMap<Students, Grades> allGrades = new HashMap<Students, Grades>();
allGrades.put(student1, grades1);
allGrades.put(student2, grades2);
allGrades.put(student3, grades3);
for(Map.Entry<Students, Grades> entry : allGrades.entrySet()) {
System.out.println("Student " + entry.getKey() + " have grades " + entry.getValue());
}
for(Map.Entry<Students, Grades> entry : allGrades.entrySet()) {
System.out.println("Student " + entry.getKey() + " have grades averge " + entry.getValue());
}
}
}
- Rejestracja:około 4 lata
- Ostatnio:około 2 lata
- Lokalizacja:Warszawa
- Postów:1092
No dobra, a umiesz w pętle for lub w stream API? Ale zakładam że najpierw for, dopiero później Streamy.
- Rejestracja:około 3 lata
- Ostatnio:około 3 lata
- Postów:6
Przyswajam pętle właśnie na takich przykładach jak ten.
- Rejestracja:około 3 lata
- Ostatnio:około 3 lata
- Postów:6
Mentor dał mi podpowiedz, w takiej formie że w klasie Grades ma być tylko jedno pole i tutaj dał "List<Double> grades = new ArrayList<>();" a następnie metody dodające oceny i liczące średnią.
- Rejestracja:około 4 lata
- Ostatnio:około 2 lata
- Lokalizacja:Warszawa
- Postów:1092
No dobra, to podpowiem tak. Potrzebujesz tylko pęti for, jednej zmiennej pomocniczej (lokalnej w metodzie od wyliczenia średniej) i metody size() z ArrayList
- Rejestracja:około 3 lata
- Ostatnio:około 3 lata
- Postów:6
List<Integer> grade1 = new ArrayList<>();
int max = grade1.get(0);
int min = grade1.get(0);
double sum = 0;
for (int n = 0; n < grade1.size(); n++) {
int element = grade1.get(n);
sum += element;
}
double avg1 = (sum - max - min) / (grade1.size());
cos takiego mniej więcej?

- Rejestracja:około 4 lata
- Ostatnio:około 2 lata
- Lokalizacja:Warszawa
- Postów:1092
Nie, nie wiem po co ten min i max.I wykorzystaj for each a nie zwykłe for.
- Rejestracja:około 3 lata
- Ostatnio:około 3 lata
- Postów:6
Nic nie kumam, jak mogę stworzyć do tego co mam metodę doliczającą oceny i liczącą średnią? zupełnie tego nie widzę niestety.
- Rejestracja:około 4 lata
- Ostatnio:około 2 lata
- Lokalizacja:Warszawa
- Postów:1092
No musisz w tej metodzie zrobić zmienną pomocniczą sum, później w for each https://www.geeksforgeeks.org/for-each-loop-in-java/ po kolei dodawać każdy double to sum czyi sum+=grade i na koniec podzielić sum/grades.size(). A najpierw sprawdzić czy grades jest puste, bo jak jest puste to trzeba od razu zwrócić np. 0