Array bidimensional

5 respostas
D

pessoal estou criando um arraylist assim:

ArrayList menuOptions = new ArrayList();
menuOptions.add("Menu1");
menuOptions.add("Menu2");
menuOptions.add("Menu3");
menuOptions.add("Menu4");

como faco para ela ser bidimensional e depois poder percorrer a mesma de tro de um laco for? eh uma dúvida boba mas gostaria de saber em questao de performance “no caso vai ser bem pequena a array”. se puderem postar algum exemplo de codigo seria otimo…

Mais uma vez… obrigado a todos…

5 Respostas

M

ArrayList list = new ArrayList(); list.add( new ArrayList() );

isso!??

D

Ok, mas precisa ser bidimensional…
imagine que vc queira construir um menu de opcoes e precise criar uma array com o link e a descricao do link, depois passar isso para um metodo que executa um for sobre a array montando o menu…

Valeu !!!

D

Ok, mas precisa ser bidimensional…
imagine que vc queira construir um menu de opcoes e precise criar uma array com o link e a descricao do link, depois passar isso para um metodo que executa um for sobre a array montando o menu…

Valeu !!!

E

vc pode criar uma classe para gerar um tipo de objeto para
realizar isso

agora quanto ao ArrayList ele é unicamente unidimencional

eu tava olhando por cima o codigo fonte do ArrayList

/**
     * Incrementa a capacidade do ArrayList se necessário,
     *
     * @param   minCapacity   determina a capacidade mínima.
     */
    public void ensureCapacity(int minCapacity) {
        modCount++;
        int oldCapacity = elementData.length;
        if (minCapacity > oldCapacity) {
            Object oldData[] = elementData;
            int newCapacity = (oldCapacity * 3)/2 + 1;
            if (newCapacity < minCapacity)
                newCapacity = minCapacity;
            elementData = new Object[newCapacity];
            System.arraycopy(oldData, 0, elementData, 0, size);
        }
    }

    /**
     * Adiciona um elemento específico no final da lista.
     *
     * @param o Elemento adicionado a lista.
     * @return <tt>true</tt> 
     */
    public boolean add(Object o) {
        ensureCapacity(size + 1);  
        elementData[size++] = o;
        return true;
    }

A classe ArrayList quanto instanciada sem parametros
cria um Array de objetos de tamanho Default 10

trexo do código associado a inserção de um novo elemento na lista

ps.: soh agora que eu fui ver o codigo que eu parei pra pensar o pq do
nome ArrayList … :razz:

ps2.: bom nada inpede vc de pergar o codigo Fonte da ArrayList e modela-lo para poder ser bidimencional :roll:

[]´s

D

Acebei resolvendo com matriz.

no jsp:

//monta menu de opcoes 
String opcoes[][] = new String[4][4];
opcoes[0][0]="url0";	
opcoes[0][1]="descricao 0";
opcoes[1][0]="url1";	
opcoes[1][1]="descricao 1";
opcoes[2][0]="url2";	
opcoes[2][1]="descricao 2";
opcoes[3][0]="url3";	
opcoes[3][1]="descricao 3";
out.println(ServletRender.menuVertical("Título1", opcoes));

no servlet:

public static String menuVertical(String titulo, String[][] opcoes){

	String menu = "<div id='menu" + titulo + "' class='menupagina'>";
	menu += "<h1><img src='../img/menuTitulo.gif' class='iconemenu'>" + titulo + "</h1>";
	menu += "<ul>";
	for(int x=0; x<opcoes.length; x++){
		menu += "<li><a href='" + opcoes[x][0] + "'><img src='../img/setaMenu.gif' class='iconeitemmenu'>" + opcoes[x][1] + "</a></li>";
	}
	menu += "</ul>";
	menu += "</div>";
	return menu;

}

Funcionou direitinho… proximo passo… criar taglibs.
Valeu pessoal !!!
Daniel

Criado 16 de fevereiro de 2005
Ultima resposta 17 de fev. de 2005
Respostas 5
Participantes 3