Oooh, people could go on about collision methods for years
. This is one of the most difficult parts of any game.
If your snake has a fixed speed and doesn't move too far at once, then I would just do pixel-by-pixel checks. That means if he's trying to move 10 pixels to the right, for a for loop that goes 10 times, checking each pixel as he goes. Very simple to increment, and as long as your game isn't too complicated, it's reasonably fast. The color black thing would work just find for this (use the Raster of a BufferedImage), but the array would as well. 1900x1440 really is not that unreasonably large.
Indeed, there are plenty of better solutions, especially if you know the geometry of the level. But they are all rather difficult. Check these out:http://www.gamasutra.com/features/20000330/bobic_01.htmhttp://www.harveycartel.org/metanet/tutorials/tutorialA.htmlhttp://geometrictools.com/Documentation/MethodOfSeparatingAxes.pdfhttp://www.doc.ic.ac.uk/~dfg/AndysSplineTutorial/index.html
A plethora of knowledge is at your fingertips.