Java 程式,用於將列表轉換為只讀列表


假設以下不是隻讀的列表

List < Integer > list = new ArrayList < Integer > ();
list.add(10);
list.add(20);
list.add(30);
list.add(40);
list.add(50);
list.add(20);
list.add(40);
list.add(50);

將上述列表轉換為只讀

list = Collections.unmodifiableList(list);

轉換後,您現在不會從列表中新增或刪除元素。讓我們來看一個例子

以下程式將出錯,因為我們首先將列表更新為只讀,然後嘗試從中刪除一個元素,而現在這是不可能的。原因是我們已經將列表轉換為只讀,您不能在只讀列表中新增或刪除元素

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Demo {
   public static void main(String[] args) {
      List<Integer> list = new ArrayList<Integer>();
      list.add(10);
      list.add(20);
      list.add(30);
      list.add(40);
      list.add(50);
      list.add(20);
      list.add(40);
      list.add(50);
      System.out.println("List = "+list);
      // converting to read-only
      list = Collections.unmodifiableList(list);
      list.remove(5);
      System.out.println("Updated List: "+list);
   }
}

下面是輸出錯誤,因為我們正在從只讀列表中刪除一個元素

List = [10, 20, 30, 40, 50, 20, 40, 50]
Exception in thread "main" java.lang.UnsupportedOperationException
   at java.base/java.util.Collections$UnmodifiableList.remove(Collections.java:1316)
   at Amit/my.Demo.main(Demo.java:27)

更新於: 30-7 月-2019

151 次瀏覽

開啟你的 職業生涯

透過課程認證

開始
廣告