One difference between Zay-ES and other Entity Systems is that you are allowed to access the system from various threads. This can give your game a huge performance boost because costly tasks can easily be separated out into their own thread. This leads to a unique design of the components and the introduction to Entity Sets.
One huge benefit of Zay-ES is that you are able to create a separate class for each job. This leads to clean code and you always know which class is responsible for bugs. For example you can have a class for Collision, Movement, Enemies, PlayerInput,…. All of these classes are only interested in entities which have special components.
//This set is interested in entities with a TestComponent EntitySet entitySet = entityData.getEntities(TestComponent.class);