Fala.

   Olha, embora eu nao aprecie muito solucoes desse tipo, com complexidade
maior que n-cubico (a sua eh n-sexta), testei apenas o trecho do seu
codigo referente ao array multiplo:

////////////////////////////////

public class Teste {

  public static void main( String args[] ) {

    String[][][][][][] A = new String[5][5][5][5][5][5];
    String output = new String();

    System.out.println( "::: " + A.length );

        for( int a = 0; a < A.length; a++ ) {
          for( int b = 0; b < A.length; b++ ) {
            for( int c = 0; c < A.length; c++ ) {
              for( int d = 0; d < A.length; d++ ) {
                for( int e = 0; e < A.length; e++ ) {
                  for( int f = 0; f < A.length; f++ ) {

                    A[a][b][c][d][e][f] = "[" + a + "][" + b + "][" + c + "][" + d + 
"][" + e + "][" + f + "]";
                    output = output + A[a][b][c][d][e][f];
                    System.out.print(".");

                  }
                }
              }
            }
          }
        }

  }

}


///////////////////////////////


Funcionou :)
E mais! Da forma como eu esperava!

5 eh um numero tao pequeno, nao? Pois eh, mas (5)^6 nao! Para ser mais
exato, vc estah colocando seu micro para avaliar 15625 concatenacoes de
String seguidas de atribuicao.

Cara, no meu Athlon XP 1.6 (256 MB de RAM - DDR) foi engracado ficar vendo
o grafico de utilizacao de CPU e de memoria RAM :) Claro que havia mais
aplicacoes rodando simultaneamente, mas a CPU ficou 5 minutos operando a
100%! Ah! A execucao do java, no inicio, comecou ocupando cerca de 3 MB de
RAM (acho que a JVM tava em cache), e, ao final do seu laco, estava com
quase 10 MB de RAM ocupados!

Ah! Talvez vc obtenha tempos de execucao bem menores, pois um dos fatos
que deixou a minha lenta foi a presenca do System.out.print("."); dentro
do for mais interno, apenas para eu me certificar de que o codigo nao
travava.

Mas, de qq forma, nao espere um bom desempenho desse codigo.

Nao experimentei escrever a String output. Se vc tiver tempo, execute esse
codigo e escreva ela num arquivo (sim, pois eh muuuito grande!). Ao menos
vai responder uma duvida que surgiu na lista a respeito do limite dos
objetos String.

15625 * 18 = 281.250 caracteres na String! A primeira versao da minha tese
de mestrado tem 99.135 caracteres (~90 paginas!).

Agora imagina que isso ocupa o dobro de espaco em bytes!

562.500 bytes apenas para uma variavel!!!
Como "output" eh uma copia da array, com 2 variaveis vc ocupou mais de 1
MB de memoria!

Hehe! Esse serviria como um otimo exemplo para meus professores de
"Organizacao e Recuperacao de Informacao" e "Estruturas de Dados"!

Bem, seja lah o que vc estiver fazendo, sua pergunta foi respondida: Sim!
Seu codigo funciona! Nao ha nada errado com seu array.

Desculpe pelos comentarios adicionais.

[]'s,


  Bruno do Amaral.


"Salvem o Grande Deus Feijao"







  Assegure-se de que, se sua aplicacao nao responde mesmo, estah
procurando o erro no local certo.



On Tue, 28 Jan 2003, Halex Maciel wrote:

> Caros colegas,
>                     estou tentando criar um array multiplo e não estou conseguindo, 
>vocês podem me ajudar? Pois ele não apresenta o resultado, não sei se ele está 
>entrando em laço infinito ou se ele demora mesmo. Agradeço a colaboração de todos. O 
>código segue abaixo:
>
> import java.awt.*;
> import java.awt.event.*;
> import javax.swing.*;
>
> public class ArrayMultiplo extends JFrame {
>     private String[][][][][][] arrayM;
>     private Container c;
>     private JTextArea txtArea;
>     private int i,j,k,l,m,n,o;
>     private String output;
>
>      public ArrayMultiplo() {
>          setTitle("Array múltiplo");
>          setBounds(100,150,500,400);
>          c = getContentPane();
>          c.setLayout(new FlowLayout());
>           //
>          txtArea = new JTextArea(40,50);
>          c.add(txtArea);
>
>           arrayM = new String[5][5][5][5][5][5];
>
>   for (i = 0; i < arrayM.length; i++) {
>       for (j = 0; j < arrayM.length; j++) {
>           for (k = 0; k < arrayM.length; k++) {
>               for (l = 0; l < arrayM.length; l++) {
>                   for (m = 0; m < arrayM.length; m++) {
>                       for (n = 0; n < arrayM.length; n++) {
>                           arrayM[i][j][k][l][m][n] = "["+i+"] ["+j+"] ["+k+"] 
>["+l+"] ["+m+"] ["+n+"]";}}}}}}
>
>   //
>   for (i = 0; i < arrayM.length; i++) {
>       for (j = 0; j < arrayM.length; j++) {
>           for (k = 0; k < arrayM.length; k++) {
>               for (l = 0; l < arrayM.length; l++) {
>                   for (m = 0; m < arrayM.length; m++) {
>                       for (n = 0; n < arrayM.length; n++) {
>                           output += " " + arrayM[i][j][k][l][m][n] + " ";}}}}}}
>
>   txtArea.append(output);
>
>   // Evento para habilitar o botão fechar da janela
>   addWindowListener(new WindowAdapter() {
>       public void windowClosing(WindowEvent e) {
>       dispose();
>       System.exit(0);
>       }
>   });
>  }
>
>  public static void main(String args[]) {
>   ArrayMultiplo mainFrame = new ArrayMultiplo();
>   mainFrame.show();
>  }
> }
>
>


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a