In computer science, an array is a contiguous allocation of memory used to store data; whereas, a list is a data structure that can store the same data in a non-contiguous way, allowing you to easily make modifications anywhere in the list. The implementation of a list isn’t too important when comparing it against arrays.
This really depends on if you are interested in a single object or a list of objects. Related to your example, are you only interested in a person’s favorite food (singular) or a person’s favorite foods (plural)? Use a list for the latter. You can also maintain a list of size 1 if you are unsure at the moment and want to limit how much refactoring you’ll need to do later.