Witam.
Mam problem z poprawą kawałka kodu.
Poniżej dwie funkcje, jedna wczytuje slownik z słowami danymi z pliku (sa to slowa jezyka polskiego, w pliku teksotym,jedno po drugim).
Drugi sprawdza dostepna pamiec.

Mam wymaganie ze pamiec na program to 70MB inaczej program sie wywali.
Ponizsze wcyztywnie wczyta tylko litery a A i braknie mu pamieci. Chche przerobic to tak aby wczytał słowa np. 3literowe.
Niestty nie działa to tak jak powinno - przez CASE ani IF. Nadal pamiec sie zapełnia pomimo ze w slowniku laduja tylko slowa 3 literowe - w efekcie tylko slowa 3 literowe na A. Nie moge zrozumiec dlaczego tak to dziala i jak to poprawic - dlaczego zapelnia pamiec skoro wybieram tylko słowa 3 literowe. W ponizszym przykladnie wczyta prawie wszyskie slowa na A - tylko nie potrzebuje takich dlugich słów.

 //======================wczytywanie slownika =================================

    public void LoadDictionary()
    {
        File file = null;
        Scanner reader = null;

        try
        {
            // otwarcie pliku
            file = new File("slowa.txt");
            reader = new Scanner(file);
            String line = null;

            line = reader.nextLine();

            // jezeli brak slow w pliku, rzuc wyjatek
            if (line == null)
                throw new Exception("Pusty slownik!");

            // wczytuj kolejne slowa z pliku
            while (line != null)
            {
                //if (line.length() == 3) dictionary.add(line.toUpperCase());

                dictionary.add(line.toUpperCase());

                // jezeli zblizamy sie do limitu pamieci, przerwij wczytywanie
                if (DictionarySize() > 60)
                    line = null;
                else
                    line = reader.nextLine();

            }
        }
        catch (Exception e)
        {
            System.err.println(e);
        }
        finally
        {
            reader.close();

        }
    }
 public long DictionarySize()
    {

        MemoryMXBean memory = ManagementFactory.getMemoryMXBean();
        long heapSize = memory.getHeapMemoryUsage().getUsed();

        heapSize = heapSize / 1048576;
        //System.out.println(heapSize);

        return heapSize;
    }