I had it initially where it was returning the right answer, but I didn't write my code to utilize threads (I didn't have a start and run method). I changed some things around while I thought I was keeping my logic the same, and now not only did I fail to create and start a ReadThread, now I'm not even getting the right answer. I feel like my code starts off nice and neat and simple, but as I struggle to reach validation I start hobbling things on to pass requirements and everything just starts looking like a mess. Basically I was using a comparator to sort the values in my HashMap, and then, because the last value was the largest, I just cycled through replacing the result variable every time, as the last getKey would be the Key associated with the largest frequency of occurring byte. Maybe that was stupid, but it worked initially, and now it doesn't. And apparently I'm not even starting a thread?