Est - il possible de convertir une List<Set<String>> mainList
à une simple liste, sans itérer sur des éléments?
Par exemple celui-ci a une valeur:
mainList = {ArrayList@705} size = 2
0 = {HashSet@708} size = 3
0 = "A2"
1 = "A1"
2 = "A3"
1 = {HashSet@709} size = 3
0 = "A6"
1 = "A5"
2 = "A7"
Je voudrais avoir une nouvelle liste comme ceci:
list = A2,A1,A3, A6, A5, A7
Vous ne pouvez pas. Ordinairement, la seule façon de copier les n
choses est de itérer sur chacun d'eux.
La seule façon d'éviter itérer sur des éléments serait une opération de niveau inférieur comme une copie de tableau.
Un ArrayList
ferait cela (comme d' autres LinkedList
ne serait pas) , mais aucune Set
mise en œuvre dans le JDK fournit sa propre toArray
mise en œuvre. Ils utilisent tous , AbstractCollection.toArray
qui le fait en interne sur l' ensemble des éléments.
Si vous mis en œuvre ou trouvé une basée sur la baie Set
mise en œuvre ( ce qui serait presque certainement pas un optimal Set
cependant) , alors vous pouvez aplatir un ArrayList<ArraySet<String>>
en utilisant une série de copies de tableau sans itérer sur les éléments.