markin1 31 de mai. de 2009
/achismo on
Se vc fizer algo tipo:
seuArray = new TipoDeDado [ tamanho ] ;
Não funciona?
/achismo off
michael.martins 31 de mai. de 2009
Não…desta forma ele cria um novo array mas não copia os dados do array anterior…
valeu!!!
markin1 31 de mai. de 2009
Hmmm acho que agora entendi, você quer aumentar as posições do array mas quer manter os dados que já existem. é isso?
michael.martins 31 de mai. de 2009
Na verdade eu quero criar uma nova array maior do que a anterior e copiar os dados da mesma para a nova array.
WendersonLP 31 de mai. de 2009
esse é um exemplo, mais não precisa pegar todo, pega a lógica que é bem melhor
Class1
public class Class1 {
private int [] array1 ;
private int [] array2 ;
private int cont ;
public Class1 () {
array1 = new int [ 10 ] ;
array2 = new int [ 20 ] ;
cont = 0 ;
}
public void setNumber ( int number ) {
if ( cont < array1 . length ) {
array1 [ cont ] = number ;
cont ++ ;
}
else
if ( cont < array2 . length ) {
if ( cont == 10 ){
System . out . printf ( "Array1\n" );
for ( int i = 0 ; i < array1 . length ; i ++ ){
System . out . printf ( "%d, " , array1 [ i ] );
}
myClone ();
}
array2 [ cont ] = number ;
cont ++ ;
}
}
public void myClone () {
for ( int i = 0 ; i < array1 . length ; i ++ )
array2 [ i ] = array1 [ i ] ;
}
public void arrayMessage () {
if ( cont < 10 ) {
System . out . printf ( "\nArray1\n" );
for ( int i = 0 ; i < cont ; i ++ ){
System . out . printf ( "%d, " , array1 [ i ] );
}
}
else {
System . out . printf ( "\nArray2\n" );
for ( int i = 0 ; i < cont ; i ++ ) {
System . out . printf ( "%d, " , array2 [ i ] );
}
}
}
}
class main
import java.util.Random ;
public class MyArrayNet {
public static void main ( String [] args ) {
Class1 obj1 = new Class1 ();
Random rand = new Random ();
for ( int i = 0 ; i < 12 ; i ++ ) {
obj1 . setNumber ( ( rand . nextInt ( 10 ) + 1 ) );
}
obj1 . arrayMessage ();
}
}
betounisul 31 de mai. de 2009
Para que reinvertar a roda?
Por que você não utiliza um ArrayList, que tudo isto já está encapsulado?
Mais se realmente o que você deseja é aumenter o tamanho do array, então segue o exemplo:
Object [] teste = new Object [ 1 ] ;
teste [ 0 ] = new String ( "A" );
teste = Arrays . copyOf ( teste , 3 );
teste [ 1 ] = new String ( "B" );
teste [ 2 ] = new String ( "C" );
for ( Object o : teste ) {
System . out . println ( ">>> " + o );
}
Bruno_Laturner 31 de mai. de 2009
Existe o System.arraycopy pra fazer cópia de um array para outro.
michael.martins 1 de jun. de 2009
Ok pessoal valeu!!!
Consegui fazer com o System.arraycopy(array1, indiceArray1, array2, indiceArray2, quantidade);
Obrigado a todos!!