Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Collections

Boa tarde galera!!!! Tudo bem??? E acredito que tenha feito o código igul ao da aula, mas ta entrando em um looping:

package br.com.alura;

import java.util.ArrayList; import java.util.Collections; import java.util.List;

public class TestandoListas {

public static void main(String[] args) {
    String aula1 = "Conhecendo mais de listas";
    String aula2 = "Modelando a classe aula";
    String aula3 = "Trabalhando com Cursos e Sets";

    ArrayList<String> aulas = new ArrayList<>();
    aulas.add(aula1);
    aulas.add(aula2);
    aulas.add(aula3);

    System.out.println(aulas);

    aulas.remove(0);
    System.out.println(aulas);

    for (String aula : aulas) {

        System.err.println("Aula: " + aula);
    }

    String primeiraAula = aulas.get(0);
    System.out.println("A primeira aula é: " + primeiraAula);

    for (int i = 0; i < aulas.size(); i++) {
        System.out.println("aula: " + aulas.get(i));

        aulas.forEach(aula -> {
            System.out.println("percorrendo: ");
            System.out.println("aula : " + aula);

        });

        aulas.add("Aumentando nosso conhecimento");
        System.out.println(aulas);

        Collections.sort(aulas);
        System.out.println("Depois de ordenado: ");
    }
}

}

2 respostas
solução!

Olá Rodrigo, tudo bem?

O problema é que você está adicionando um novo elemento à lista aulas dentro do loop for. Isso faz com que a lista fique cada vez maior e, consequentemente, o loop vai continuar executando enquanto houver elementos na lista, criando um loop infinito. Se você mover a linha aulas.add("Aumentando nosso conhecimento"); para fora do loop for o loop vai percorrer apenas os elementos originais da lista, sem adicionar novos elementos a cada iteração.

package br.com.alura;

import java.util.ArrayList;
import java.util.Collections;

public class TestandoListas {

    public static void main(String[] args) {
        String aula1 = "Conhecendo mais de listas";
        String aula2 = "Modelando a classe aula";
        String aula3 = "Trabalhando com Cursos e Sets";

        ArrayList<String> aulas = new ArrayList<>();
        aulas.add(aula1);
        aulas.add(aula2);
        aulas.add(aula3);

        System.out.println(aulas);

        aulas.remove(0);
        System.out.println(aulas);

        for (String aula : aulas) {
            System.out.println("Aula: " + aula);
        }

        String primeiraAula = aulas.get(0);
        System.out.println("A primeira aula é: " + primeiraAula);

        for (int i = 0; i < aulas.size(); i++) {
            System.out.println("aula: " + aulas.get(i));
        }

        aulas.add("Aumentando nosso conhecimento");
        System.out.println(aulas);

        Collections.sort(aulas);
        System.out.println("Depois de ordenado: ");
        System.out.println(aulas);
    }

}

Obrigado Otávio! Cara na real eu apenas ajustei a } estava pegando o código todo, obrigado pela dica!!!!!!

package br.com.alura;

import java.util.ArrayList; import java.util.Collections; import java.util.List;

public class TestandoListas {

public static void main(String[] args) {
    String aula1 = "Conhecendo mais de listas";
    String aula2 = "Modelando a classe aula";
    String aula3 = "Trabalhando com Cursos e Sets";

    ArrayList<String> aulas = new ArrayList<>();
    aulas.add(aula1);
    aulas.add(aula2);
    aulas.add(aula3);

    System.out.println(aulas);

    aulas.remove(0);
    System.out.println(aulas);

    for (String aula : aulas) {

        System.out.println("Aula: " + aula);
    }

    String primeiraAula = aulas.get(0);
    System.out.println("A primeira aula é: " + primeiraAula);

    for (int i = 0; i < aulas.size(); i++) {
        System.out.println("aula: " + aulas.get(i));

        aulas.forEach(aula -> {
            System.out.println("percorrendo: ");
            System.out.println("aula : " + aula);

        });
    }

        aulas.add("Aumentando nosso conhecimento");
        System.out.println(aulas);

        Collections.sort(aulas);
        System.out.println("Depois de ordenado: ");
        System.out.println(aulas);

}

}