Tạo Read-only Collection trong Java



Miêu tả vấn đề

Cách tạo một Collection là read-only trong Java ?

Giải pháp

Ví dụ sau minh họa cách tạo một Collection là read-only bởi sử dung phương thức Collections.unmodifiableList() của lớp Collection trong Java.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;public class Main {
   public static void main(String[] argv) 
   throws Exception {
      List stuff = Arrays.asList(new String[] { "a", "b" });
      List list = new ArrayList(stuff);
      list = Collections.unmodifiableList(list);
      try {
         list.set(0, "new value");
      } 
	  catch (UnsupportedOperationException e) {
      }
      Set set = new HashSet(stuff);
      set = Collections.unmodifiableSet(set);
      Map map = new HashMap();
      map = Collections.unmodifiableMap(map);
      System.out.println("Collection is read-only now.");
   }
}

Kết quả

Code trên sẽ cho kết quả sau:

Collection is read-only now.

collection_trong_java.jsp