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);

      //转换为只读

      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)

以上是 Java程序将列表转换为只读列表 的全部内容, 来源链接: utcz.com/z/327183.html

回到顶部