[Tablica] Jak zwiększyć rozmiar tablicy?

0

oto fragment mojej klasy reprezentującej tablice:

class Tablica
   {
   private long[] tab;                 // referencja do tablicy 
   private int elementow;               // liczba elementów tablicy 
   private int max_rozm;            //zdeklarowany rozmiar tablicy

   public Tablica(int max)         // konstruktor 
      {
      tab = new long[max];                 // tworzymy tablicę o rozmiarze max
      elementow = 0;                        // na razie brak elementów 
      max_rozm=max;
.
.
//metoda odpowiedzialna za wstawianie elementów:
  public boolean wstaw(long wartosc)    // wstawienie elementu do tablicy 
    {
    if (elementow < max_rozm)
        {
        tab[elementow] = wartosc;             // wstawiamy wartość na koncu
        elementow++;                      // zwiększamy licznik elementów 
        return true;
        }
    else
        return false;           //brak miejsca w tablicy
    }
}

Moje pytanie brzmi:
Jak powinna wyglądać metoda wstaw() aby automatycznie zwiększała rozmiar zdeklarowanej wcześniej tablicy (np. o 10) (albo: jak inaczej rozwiązać ten problem?)

0

Witam

Wydaje mi się ,że najprościej bedzie jeśli w swojej klasie obudujesz jedną z implementacji listy.
wtedy w metodzie wstaw po prostu zwiększysz wskażnik maksymalnej wartości o 10.

pzdr

0

po prostu - tworz nowa tablice.
i nie o 10 tylko jesli juz polecam o 10%

pozdrawiam

0

@eximius, masz rację ale:

  1. należy wtedy użyć metody System.copyArray(oldArray, newArray);
  2. Jeżeli potrzebujesz często zwiększać wielkość tablicy lepiej użyć np. HashMap lub jeżeli nie możesz użyć list wiązanych to samemu je zaimplementować (b. proste)
  3. uwzględnij jeszcze proces odwrotny czyli zmniejszenie rozmiaru tablicy.
0

hehe, w ogóle to najlepiej uzyc ArrayList ale kolega tablice chcial :P
a co do zmniejszania rozmiaru, to trafna uwaga...

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0