Java - zliczanie wartości tablicy

0

Witajcie, napisałem prosty algorytm , który zlicza każdą wartość znajdującą się w tablicy bajtów "w" do tablicy "histogram". Jak sama nazwa tabeli docelowej wskazuje, aplikacja po prostu tworzy swego rodzaju histogram dla wartości zawartych w tablicy "w".

public void count (byte [] w, int [] histogram)
	{
	
		for (int j = 0; j < histogram.length; j++)
		{
			for (int i = 0; i < w.length; i++)
			{
				if (w[i] == j)
				{
					histogram[j] += 1;
				}
				
			}	
			
			for (int i = 0; i<histogram.length; i++)
		    {
		               System.out.println("Bajt " + i + " - " + histogram[i]);
		    }
		}

Program zlicza wartości prawidłowo , ale nie bierze pod uwagę wartości ujemnych... Możecie mi pomóc w przerobieniu algorytmu tak by liczył też ujemne wartości?

0

Jak duża jest tablica histogram?

0

To tablica int, pojemności 256 , taka dlatego żeby móc zapisać każdą wartość bajtu (od -127 do 128).

0
        for (int j = -128; j < 128; j++)
        {
            for (int i = 0; i < w.length; i++)
            {
                if (w[i] == j)
                {
                    histogram[j + 128] += 1;
                }
 
            }    
        }
0

Możesz mi jeszcze wyjaśnić w jaki sposób mogę dostać się do pola tablicy histogram o wartości ujemnych ? Albo ogólnie jak wypisać w takim razie całą zawartość tej tablicy?

1
            for (int i = 0; i<histogram.length; i++)
            {
                       System.out.println("Bajt " + (i - 128) + " - " + histogram[i]);
            }

Moim zdaniem sensowniejsze do tworzenia histogramu byłoby użycie mapy typu HashMap<Byte,Integer>.

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