Data that is used together and sits close together in memory is cheaper to read, because the CPU fetches memory in small blocks (cache lines) and tends to prefetch sequential access. Arrays have good locality; pointer-chasing structures such as a linked list can have poor locality.
Cache locality
Data that is used together and sits close together in memory is cheaper to read, because the CPU loads memory in cache lines and prefetches sequential access.