Iteracja po liście

Iteracja po liście
AP
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 7 lat
  • Postów:50
0

Witam! Jak w temacie: Jak iteruje się po liście? Mam program który wczytuje liczby do momentu wpisania liczby 150. tablicy trzeba przypisać długość, więc użyłem tablicy. Problem jest jednak u mnie z iteracją. Bo mam potem policzyć sumę wszystkich elementów, ich średnią i sumę liczb podzielnych przez 3. Pomoże ktoś? :) Da się iterować po liście czy jest jakiś inny sposób na to? Muszę robić tak?:

Kopiuj
suma+=lista.remove(lista.size()-1);

edytowany 1x, ostatnio: Adrian Paź
atmal
  • Rejestracja:ponad 8 lat
  • Ostatnio:6 dni
  • Postów:913
0

Możesz to zrobić używając pętli foreach:

Kopiuj
for ([typ] element : lista) // typ to oczywiście typ elementów przechowywanych w liście
{
	suma += element;
	...
}

Failure of one test is a tragedy, failure of fifty is a statistic.
edytowany 1x, ostatnio: atmal
kiyo
  • Rejestracja:ponad 8 lat
  • Ostatnio:4 dni
  • Lokalizacja:JVM
  • Postów:179
0

Poza sposobem wspomnianym powyżej możesz użyć jeszcze zwykłego fora:

Kopiuj
for (int i = 0; i < lista.size(); i++) {
    suma += lista.get(i);
}

albo iteratora:

Kopiuj
Iterator<Integer> ListaIterator = lista.iterator();
while (ListaIterator.hasNext()) {
    suma += ListaIterator.next();
}
jarekr000000
Te kody są w zasadzie poprawne, ale skąd je wziąłeś? Prowadzisz badania nad ceramiką wydobytą z kurhanów późnej kultury łużyckiej?
kiyo
Dokładnie. Takie hobby.
0

Różnica jest tylko umowna prawda? Nie ma znaczenia czego się użyje nie?

kiyo
Z tego co się orientuje iterator jest szybszy w kolekcjach, w których nie masz dostępu do dowolnego elementu. W tym przypadku czasy powinny być podobne, więc chyba nie ma znaczenia.
jarekr000000
  • Rejestracja:prawie 9 lat
  • Ostatnio:dzień
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4711
1
Kopiuj
lista.stream().mapToInt(Integer::intValue).sum()

jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.