What is this date format? 2011-08-12T20:17:46.384Z

The T is just a literal to separate the date from the time, and the Z means “zero hour offset” also known as “Zulu time” (UTC). If your strings always have a “Z” you can use: SimpleDateFormat format = new SimpleDateFormat( “yyyy-MM-dd’T’HH:mm:ss.SSS’Z'”, Locale.US); format.setTimeZone(TimeZone.getTimeZone(“UTC”)); Or using Joda Time, you can use ISODateTimeFormat.dateTime().

Java 8 Distinct by property

Consider distinct to be a stateful filter. Here is a function that returns a predicate that maintains state about what it’s seen previously, and that returns whether the given element was seen for the first time: public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Set<Object> seen = ConcurrentHashMap.newKeySet(); return t -> seen.add(keyExtractor.apply(t)); } … Read more

How to convert Milliseconds to “X mins, x seconds” in Java?

Use the java.util.concurrent.TimeUnit class: String.format(“%d min, %d sec”, TimeUnit.MILLISECONDS.toMinutes(millis), TimeUnit.MILLISECONDS.toSeconds(millis) – TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)) ); Note: TimeUnit is part of the Java 1.5 specification, but toMinutes was added as of Java 1.6. To add a leading zero for values 0-9, just do: String.format(“%02d min, %02d sec”, TimeUnit.MILLISECONDS.toMinutes(millis), TimeUnit.MILLISECONDS.toSeconds(millis) – TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)) ); If TimeUnit or toMinutes are unsupported … Read more

When to use: Java 8+ interface default method, vs. abstract method

There’s a lot more to abstract classes than default method implementations (such as private state), but as of Java 8, whenever you have the choice of either, you should go with the defender (aka. default) method in the interface. The constraint on the default method is that it can be implemented only in the terms … Read more

Update Eclipse with Android development tools v. 23

Google has released ADT v23.0.2. This solved many problems of previous ADT version 23. Step-by-step: Menu Help → Install New Software… For “Work with”, select the Android source https://dl-ssl.google.com/android/eclipse Tick ADT v23.0 for installation, then click “Next” Eclipse will show “Install Remediation Page” since there is conflict with previous version. (If it does not, see … Read more

Type List vs type ArrayList in Java [duplicate]

Almost always List is preferred over ArrayList because, for instance, List can be translated into a LinkedList without affecting the rest of the codebase. If one used ArrayList instead of List, it’s hard to change the ArrayList implementation into a LinkedList one because ArrayList specific methods have been used in the codebase that would also … Read more

What issues should be considered when overriding equals and hashCode in Java?

The theory (for the language lawyers and the mathematically inclined): equals() (javadoc) must define an equivalence relation (it must be reflexive, symmetric, and transitive). In addition, it must be consistent (if the objects are not modified, then it must keep returning the same value). Furthermore, o.equals(null) must always return false. hashCode() (javadoc) must also be … Read more

What are the best use cases for Akka framework [closed]

I have used it so far in two real projects very successfully. both are in the near real-time traffic information field (traffic as in cars on highways), distributed over several nodes, integrating messages between several parties, reliable backend systems. I’m not at liberty to give specifics on clients yet, when I do get the OK … Read more

Can we instantiate an abstract class?

Here, i’m creating instance of my class No, you are not creating the instance of your abstract class here. Rather you are creating an instance of an anonymous subclass of your abstract class. And then you are invoking the method on your abstract class reference pointing to subclass object. This behaviour is clearly listed in … Read more