如何使Java ArrayList只读?

您可以使用Collections接口的unmodifiableList()方法使集合不可修改

示例

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Sample {
   public static void main(String[] args) {
      ArrayList<String> list = new ArrayList<String>();
      list.add("JavaFx");
      list.add("Java");
      list.add("WebGL");
      list.add("OpenCV");
      System.out.println(list);
      List myList= (List) Collections.unmodifiableList(list);
      myList.add("Apache Hadoop");
      System.out.println(myList);
   }
}

输出结果

Exception in thread "main" [JavaFx, Java, WebGL, OpenCV]
java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.add(Unknown Source)
at collections_package.Sample.main(Sample.java:16)