What are some Java patterns well-suited for fast, algorithmic coding?

Posted by Casey Chu on Programmers See other posts from Programmers or by Casey Chu
Published on 2013-11-03T13:50:41Z Indexed on 2013/11/03 16:10 UTC
Read the original article Hit count: 280

Filed under:
|

I'm in college, and I've recently started competing in programming competitions with my friends. These competitions involve solving algorithmic problems quickly. It's a lot of fun, but there's one problem: I'm forced to use Java. (My teammates use Java.)

Background: I'm a self-taught JavaScript programmer, and it hurts to write Java code. I find it very verbose and inflexible, and I feel slowed down when having to declare types and decide which of the eighty list data structure to use. I'm also frustrated about the lack of functional programming features and how verbose using regular expressions, arrays, and dictionaries are.

As an example, consider the problem of finding the length of the longest string of consecutive characters in a given string. So the string XX22BBBBccXX222 would give 4, for the string of four Bs. In Java, I'd have to loop through and manually count characters and manually keep track of the maximum. (That's at least as far as I'm aware -- I'm not as familiar with Java as I am with JavaScript.) In JavaScript, I'd find it like this:

var max = Math.max.apply(Math, str.match(/(.)\1*/g).map(function (s) { return s.length; }));

Much quicker and simpler, in my book.

The question: what are some Java features, techniques, or patterns well-suited for fast, algorithmic coding?

© Programmers or respective owner

Related posts about java

Related posts about JavaScript