Aumentar tamanho de um array primitivo de qualquer tipo

    public static void main(String[] args)
    {
        Integer[] x = { 0,1, 2, 3};
        
        x = redimencionaArray(x);
        for(int i = 0;i<x.length;i++)
        {
            if(x[i] == null)x[i]= i;
        }
    }

    public static Integer[] redimencionaArray(Integer[] array)
    {
        return redimencionaArray(array, 10);
    }

    public static Integer[] redimencionaArray(Integer[] array, int tamanhoIncremento)
    {
        Integer[] novoArray = new Integer[array.length + tamanhoIncremento];
        for (int i = 0; i >< novoArray.length; i++)
        {
            if (i < array.length)
            {
                novoArray[i] = array[i];
            }
        }
        return novoArray;
    }
}

Olá. bom este codigo acima funcionou mas o que eu mesmo queria era criar um esquema onde qualquer tipo em um array primitivo possa aumentar o tamanho quando necessario. Ok, sei que ja existe a opcao pronta ArrayList mas eu preciso mesmo é tratar o array primitivo…

É só utilizar os métodos utilitários da classe Arrays

Ex:public static void main(String[] args){ int[] arr = new int[10]; System.out.println(arr.length); arr = Arrays.copyOf(arr, 11); System.out.println(arr.length); }

perfeito. procurei feito um louco algo parecido. vlw cara me evitou dor de cabeça.

Sem problemas :slight_smile:

Só pra ficar de referência, é esse método que a classe ArrayList utiliza pra aumentar seu array interno.[code]public boolean add(E paramE)
{
ensureCapacity(this.size + 1);
this.elementData[(this.size++)] = paramE;
return true;
}

public void ensureCapacity(int paramInt)
{
this.modCount += 1;
int i = this.elementData.length;
if (paramInt <= i)
return;
Object[] arrayOfObject = this.elementData;
int j = i * 3 / 2 + 1;
if (j < paramInt)
j = paramInt;
this.elementData = Arrays.copyOf(this.elementData, j);
}[/code]