I’m not sure if I get "array" or "typed list", but maybe you could specify the property on each item? (FWIW, that’s how Schema.org does it usually.)
<div itemscope itemtype="http://example/Person">
<ul> <!-- using "friend" instead of "Friends" -->
<li itemprop="friend" itemscope itemtype="http://example/Person"></li>
<li itemprop="friend" itemscope itemtype="http://example/Person"></li>
</ul>
</div>
If there is a "list of friends", possibly ordered, maybe you could use a special list item? (FWIW, Schema.org has ItemList
.)
<div itemscope itemtype="http://example/Person">
<ul itemprop="hasFriendList" itemscope itemtype="http://example/FriendList">
<li itemprop="friend" itemscope itemtype="http://example/Person"></li>
<li itemprop="friend" itemscope itemtype="http://example/Person"></li>
</ul>
</div>