Typically, component is just some POCO class and systems iterate over combinations of these components.
> if we have two arrays then there is lots of hopping around
Why? You can just create a custom allocation scheme assigning one giant chunk of memory to all components and give each system a custom iterator that iterates accordingly for the alignment of components it cares about