Anúncio

Collapse
No announcement yet.

Vectores||help [java]

Collapse

Ads nos topicos Mobile

Collapse

Ads Nos topicos Desktop

Collapse
X
Collapse
Primeira Anterior Próxima Última
 
  • Filtrar
  • Tempo
  • Show
Clear All
new posts

    #31
    Originalmente Colocado por LH Ver Post
    char [][] tabuleiro = {

    {
    '*', '2', '2', '*', '1', '0', '0', '1', '*'},
    {'2', '*', '3', '-', '0', '0', '1', '2', '-'},
    {'0', '2', '*', '-', '1', '0', '1', '*', '-'},
    {'0', '1', '-', '*', '2', '0', '1', '-', '-'},
    {'1', '1', '-', '-', '*', '1', '1', '-', '-'},
    {'*', '-', '-', '-', '-', '*', '-', '-', '-'},
    {'-', '-', '-', '-', '-', '-', '*', '-', '-'},
    {'-', '-', '-', '1', '1', '-', '-', '*', '-'},
    {'-', '-', '-', '1', '*', '-', '-', '-', '*'}
    };


    Como faço pra fazer uma cópia desta variavel, para outra variavel char
    O que é que já tentaste?

    A resposta deverá andar por aqui:

    int [] numbers = { 2, 3, 4, 5};

    int [] numbersClone = (int[])numbers.clone();
    Editado pela última vez por Karma; 18 October 2008, 18:43.

    Comentário


      #32
      Originalmente Colocado por Karma Ver Post
      O que é que já tentaste?

      A resposta deverá andar por aqui:

      int [] numbers = { 2, 3, 4, 5};

      int [] numbersClone = (int[])numbers.clone();


      char [][] tabuleiroReal=(char[][])tabuleiro.clone();

      esse não dá

      Comentário


        #33
        Originalmente Colocado por LH Ver Post
        char [][] tabuleiroReal=(char[][])tabuleiro.clone();

        esse não dá
        Obrigaste-me a instalar o Eclipse.

        Aqui deu. Estou a usar o Java 1.6.

        Porque é que dizes que não dá?

        Comentário


          #34
          Originalmente Colocado por Karma Ver Post
          Obrigaste-me a instalar o Eclipse.

          Aqui deu. Estou a usar o Java 1.6.

          Porque é que dizes que não dá?

          quer dizer, dar dá... mas quando actualizo os dados na 1ª matriz, altera também a 2ª...

          eu queria copiar uma matriz precisamente pra guardar os dados originais...
          e com esta formula não dá

          Comentário


            #35
            Tem que ser mesmo à la pata, o Clone() parece que só funciona para arrays simples.

            char[][] tabuleiroReal = new char [9][9];

            for ( int i = 0; i < 9; i ++) {
            for(int j = 0; j < 9; j++){
            tabuleiroReal[i][j] = tabuleiro[i][j] ;
            }
            }

            Comentário


              #36
              Originalmente Colocado por Karma Ver Post
              Tem que ser mesmo à la pata, o Clone() parece que só funciona para arrays simples.

              char[][] tabuleiroReal = new char [9][9];

              for ( int i = 0; i < 9; i ++) {
              for(int j = 0; j < 9; j++){
              tabuleiroReal[i][j] = tabuleiro[i][j] ;
              }
              }


              já deu é isso mesmo...

              vamos lá ver se é esta a lógica que o prof quer para o programa

              Comentário


                #37
                Originalmente Colocado por LH Ver Post
                já deu é isso mesmo...

                vamos lá ver se é esta a lógica que o prof quer para o programa
                Muitos anos a virar frangos.

                Qualquer dúvida, disponha sempre.

                Comentário


                  #38
                  Originalmente Colocado por Karma Ver Post
                  Muitos anos a virar frangos.

                  Qualquer dúvida, disponha sempre.

                  ok ok, obrigado....

                  Comentário


                    #39
                    O problema dessa solução é que esta hard-coded o tamanho do vectores ou solução mais generica pode ser...
                    Código:
                    [COLOR=navy][B]public[/B][/COLOR] [COLOR=navy][B]void[/B][/COLOR] copyArray(Object[][] origem, Object[][] destino)[COLOR=navy]{[/COLOR]
                    [COLOR=navy][B]    for[/B][/COLOR] ([COLOR=navy][B]int[/B][/COLOR] i=0;i<origgem.length;i++)[COLOR=navy]{[/COLOR]
                                System.arraycopy(origem[i],0,destino[i],0,origem[i].length);
                        [COLOR=navy]}[/COLOR]
                    [COLOR=navy]}[/COLOR]

                    Comentário


                      #40
                      Originalmente Colocado por LH Ver Post
                      char [][] tabuleiro = {

                      {
                      '*', '2', '2', '*', '1', '0', '0', '1', '*'},
                      {'2', '*', '3', '-', '0', '0', '1', '2', '-'},
                      {'0', '2', '*', '-', '1', '0', '1', '*', '-'},
                      {'0', '1', '-', '*', '2', '0', '1', '-', '-'},
                      {'1', '1', '-', '-', '*', '1', '1', '-', '-'},
                      {'*', '-', '-', '-', '-', '*', '-', '-', '-'},
                      {'-', '-', '-', '-', '-', '-', '*', '-', '-'},
                      {'-', '-', '-', '1', '1', '-', '-', '*', '-'},
                      {'-', '-', '-', '1', '*', '-', '-', '-', '*'}
                      };


                      Como faço pra fazer uma cópia desta variavel, para outra variavel char
                      Vê se isto funciona:

                      char [][] novoChar = tabuleiro.clone();

                      Copiar célula a célula é pouco eficiente, a menos que seja esse o propósito do exercício.

                      Comentário


                        #41
                        Originalmente Colocado por smithico Ver Post
                        Vê se isto funciona:

                        char [][] novoChar = tabuleiro.clone();

                        Copiar célula a célula é pouco eficiente, a menos que seja esse o propósito do exercício.
                        Api do java...
                        clone


                        public Object clone() Returns a shallow copy of this ArrayList instance. (The elements themselves are not copied.)
                        Parece-me que o objectivo é ficar com uma cópia exacta do estado inicial e modificar a outra sem que isso influencia a outra. Logo o clone não vai permitir fazer isso pois amboas ficam a partilhar o mesmo espaço de memória. E neste caso julgo que pretende uma deep copy. Posso estar errado no proposito do exercicio mas por norma costumam quer coisas destas... :P
                        Editado pela última vez por chambas; 20 October 2008, 15:21.

                        Comentário

                        AD fim dos posts Desktop

                        Collapse

                        Ad Fim dos Posts Mobile

                        Collapse
                        Working...
                        X