我試圖反轉一個不可修改的列表。然而,我試圖實現它,但是有可能更新或反向和不可修改的列表?我知道我們可以用谷歌不可變列表如何在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);
}
}
做在上面的程序我只是遍歷從後unmodifable列表,並把它們放在一個陣列中後,加入該數組新修改的列表。我們能否以更好的方式在優化方面做到這一點?
番石榴的'ImmutableList'' reverse'方法只是將原ImmutableList的內容複製到一個可變列表中,調用'Collections.reverse'並返回一個新的'ImmutableList'。它不會修改原始的'ImmutableList'(就像你似乎一樣)。 –
是的,我知道番石榴的,但它有可能實現不可修改?因爲如果我進行任何操作,我在不可修改列表中獲得不受支持的操作異常 – vkrams
唯一的方法是複製原始不可變列表的內容,反轉列表(或者如果向後循環,則不做任何操作),然後製作它不可變,就像番石榴一樣。 –