Java - zliczanie wartości tablicy

Java - zliczanie wartości tablicy
PO
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 7 lat
  • Postów:92
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".

Kopiuj
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?

edytowany 2x, ostatnio: polgol
bogdans
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 lat
0

Jak duża jest tablica histogram?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
PO
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 7 lat
  • Postów:92
0

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

bogdans
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 lat
0
Kopiuj
        for (int j = -128; j < 128; j++)
        {
            for (int i = 0; i < w.length; i++)
            {
                if (w[i] == j)
                {
                    histogram[j + 128] += 1;
                }
 
            }    
        }

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
PO
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 7 lat
  • Postów:92
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?

bogdans
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 lat
1
Kopiuj
            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>.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.