[ RESOLVIDO ] ArrayList - estou fazendo errado?

3 respostas
Paulomv

salve, salve...

Estou tentando fazer uma demonstração de ArrayList, porém, não estou conseguindo por pra rodar, segue o erro:

run:
Exception in thread "main" java.lang.NoClassDefFoundError: iniciando/Iniciando (wrong name: Iniciando)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Java Result: 1

Minha classe segue da seguinte maneira:

import java.util.ArrayList;

public class Iniciando {

    
    public static void main(String[] args) {
        
        ArrayList< String > items = new ArrayList<>();
        
        items.add("red");
        items.add(0, "yellow");
        
        System.out.print("Display contentes with counter-controlled loop:");
        
        for (int i = 0; i < items.size(); i++)
            System.out.printf("%s", items.get(i));
        
        display(items, 
                "\nDisplay list contents with enhaced for statement: ");
        
        items.add("green");
        items.add("yellow");
        display(items, "List with two new elements:");
        
        items.remove("yellow");
        display(items, "Remove second list element(green): ");
        
        System.out.printf("\"red is %sin the list\n",
                items.contains("red")? "": "not");
        
        System.out.printf("Size: %s\n", items.size());

    /**
     *
     * @param items
     * @param header
     */
    public static void display( ArrayList< String > items, String header){
        
            System.out.printf(header);
            
            for( String item : items)
                System.out.printf("%s ", item);
            
            System.out.println();
            
        }
                
       
       }
    
}

Estou fazendo errado???

3 Respostas

asousaj

Olá Paulomv,
Essa é simples, seu método display não pode estar entro do método main. Não existe método dentro de método.

Teste ai:

import java.util.ArrayList;

public class Iniciando {

	public static void main(String[] args) {

		ArrayList<String> items = new ArrayList<>();

		items.add("red");
		items.add(0, "yellow");

		System.out.print("Display contentes with counter-controlled loop:");

		for (int i = 0; i < items.size(); i++)
			System.out.printf("%s", items.get(i));

		display(items, "\nDisplay list contents with enhaced for statement: ");

		items.add("green");
		items.add("yellow");
		display(items, "List with two new elements:");

		items.remove("yellow");
		display(items, "Remove second list element(green): ");

		System.out.printf("\"red is %sin the list\n",
				items.contains("red") ? "" : "not");

		System.out.printf("Size: %s\n", items.size());

	}

	/**
	 * 
	 * @param items
	 * @param header
	 */
	public static void display(ArrayList<String> items, String header) {

		System.out.printf(header);

		for (String item : items)
			System.out.printf("%s ", item);

		System.out.println();

	}

}
RodrigoKaos

Vc ta criando o metodo dentro de main, isso n é possivel.
vc precisar crair os metodos na classe, dps de criados pode "chamalos" em outros metodos

public class Iniciando {

     public static void display( ArrayList< String > items, String header){
        //.....
        }


    public static void main(String[] args) {
        //...
        display();
       }
    
}
Paulomv

Senhores,

primeiramente, obrigado pela atenção e ajuda!

foi falta de atenção, sem querer criei a classe dentro do método MAIN… que feio neh? rs
o pior é que eu revisei o código umas 3-4 vezes…

Novamente obrigado pela ajuda… :slight_smile:

Criado 21 de outubro de 2013
Ultima resposta 21 de out. de 2013
Respostas 3
Participantes 3