J'essaie d'inverser une liste non modifiable. Cependant j'ai essayé de le réaliser mais est-il possible de mettre à jour ou de renverser et de liste non modifiable? Je sais que nous pouvons le faire avec Google Liste ImmuableComment inverser une liste non modifiable dans java
import java.util.*;
public class ImmutableList
{
public static void main(String args[])
{
String[] mylist = {"Apple","Orange","Mango","Kiwi","Banana"};
List reverselist = new ArrayList();
List<String> strList = Arrays.asList(mylist);
List<String> unmodifiableList = Collections.unmodifiableList(strList);
for(int i=unmodifiableList.size();i>0;i--)
{
reverselist.add(unmodifiableList.get(i-1));
}
List<String> reverse = Collections.unmodifiableList(reverselist);
System.out.println(reverse);
}
}
Dans le programme ci-dessus je traversais dans la liste juste unmodifable de dos et de les mettre dans un tableau après que l'ajout de ce tableau à la nouvelle liste non modifiable. Peut-on le faire mieux en termes d'optimisation?
La méthode 'ImmutableList' de' de 'de' de Guava copie juste le contenu de l'original 'ImmutableList' dans un mutable, appelle 'Collections.reverse' et retourne une nouvelle' ImmutableList'. Cela ne modifie pas l'original 'ImmutableList' (comme vous le semblez bien). –
Ouais je connais le goyave mais est-il possible de le réaliser en non modifiable? Parce que si je fais une opération, je reçois une exception d'opération non supportée dans la liste non modifiable – vkrams
La seule façon est de copier le contenu de la liste immuable d'origine, d'inverser la liste (ou ne rien faire si vous bouclez en arrière) et ensuite faire c'est immuable, comme le fait Guava. –