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
java
|JavaScript
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 B
s. 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