Useful Java snippets
Starting this post to keep track of some useful Java snippets I use/come across.
Singleton Map/List
Need a map, but with just one object in it? Don’t feel like going through all this boilerplate just to get that?
Map<KeyType, ValueType> myMap = new HashMap<KeyType, ValueType>();
myMap.put(key, value);
thingThatNeedsAMap(myMap);
Collections.singletonMap to the rescue.
With one fell swoop, you’ve got yourself an immutable map:
Collections.singletonMap(key, value);
In the same vein, there’s also a Collections.singletonList method for when you need a list with a single item.
Generate a random String of a certain length
(Thanks to this StackOverflow post)
Import org.apache.commons.text.RandomStringGenerator
, and use it like this:
RandomStringGenerator randomStringGenerator =
new RandomStringGenerator.Builder()
.withinRange('0', 'z')
.filteredBy(CharacterPredicates.LETTERS, CharacterPredicates.DIGITS)
.build();
randomStringGenerator.generate(12);
Comma-separate a Collection of Strings with a StringJoiner
Say you have this List of Strings: ["Alice", "Bob", "Carol"]
, and you want to concatenate them into one String that’s comma-separated.
Simply use a StringJoiner.
String commaSeparatedNames = names.stream()
.collect(Collectors.joining(", "));
Reference: Class StringJoiner
Convert between time units
You can use Java’s TimeUnit class to easily convert between time units. For example, convert 15 seconds to milliseconds with:
TimeUnit.SECONDS.toMillis(15)
Catch multiple exceptions
Java 7 syntax lets you catch multiple exceptions at once:
catch(RuntimeException | IOException | SQLException e)
Reference: Java Catch Multiple Exceptions, Rethrow Exception
Comments