A partir de la liste de jeu de cordes à une simple liste

OutOfMemoryError:

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
Michael :

Vous ne pouvez pas. Ordinairement, la seule façon de copier les nchoses 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 ArrayListferait cela (comme d' autres LinkedListne serait pas) , mais aucune Setmise en œuvre dans le JDK fournit sa propre toArraymise en œuvre. Ils utilisent tous , AbstractCollection.toArrayqui le fait en interne sur l' ensemble des éléments.

Si vous mis en œuvre ou trouvé une basée sur la baie Setmise en œuvre ( ce qui serait presque certainement pas un optimal Setcependant) , alors vous pouvez aplatir un ArrayList<ArraySet<String>>en utilisant une série de copies de tableau sans itérer sur les éléments.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=314035&siteId=1
conseillé
Classement