Actually TArray is designed to be fast, memory efficient and safe. TDoubleLinkedList is considered to build links between pointers.
I would like to suggest using TArray as a container of data/memory, and using TDoubleLinkedList to build relationship of each data if need.