คลาส Collections ของ java.util วิธีการแพ็กเกจที่ทำงานเฉพาะกับคอลเล็กชัน วิธีการเหล่านี้มีการดำเนินการเพิ่มเติมต่างๆ ที่เกี่ยวข้องกับอัลกอริธึมที่หลากหลาย
คลาสนี้มีรูปแบบที่แตกต่างกันของวิธีการ unmodifiable() ดังที่แสดงด้านล่าง −
Sr.No | วิธีการ &คำอธิบาย |
---|---|
1 | สแตติก เมธอดนี้ยอมรับอ็อบเจกต์คอลเลกชันใดๆ และส่งคืนมุมมองที่ไม่สามารถแก้ไขได้ของคอลเล็กชันที่ระบุ |
2 | รายการ เมธอดนี้ยอมรับอ็อบเจ็กต์ของอินเทอร์เฟซ List และส่งคืนมุมมองที่ไม่สามารถแก้ไขได้ |
3 | แผนที่ เมธอดนี้ยอมรับอ็อบเจ็กต์ของอินเทอร์เฟซแผนที่และส่งคืนมุมมองที่ไม่สามารถแก้ไขได้ |
4 | คงที่ เมธอดนี้ยอมรับอ็อบเจ็กต์ของอินเทอร์เฟซ Set และส่งคืนมุมมองที่ไม่สามารถแก้ไขได้ |
5 | คงที่ เมธอดนี้ยอมรับอ็อบเจ็กต์ของอินเทอร์เฟซ SortedMap และส่งคืนมุมมองที่ไม่สามารถแก้ไขได้ |
6 | คงที่ เมธอดนี้ยอมรับอ็อบเจ็กต์ของอินเทอร์เฟซ SortedSet และส่งคืนมุมมองที่ไม่สามารถแก้ไขได้ของชุดที่เรียงลำดับที่ระบุ |
คุณสามารถสร้างวัตถุคอลเลกชันแบบอ่านอย่างเดียวได้โดยใช้วิธีใดวิธีหนึ่งที่เกี่ยวข้องกับคอลเลกชัน
ตัวอย่าง
โปรแกรม Java ที่ตามมาจะสร้างวัตถุ ArrayList เพิ่มองค์ประกอบเข้าไป แปลงเป็นวัตถุ List แบบอ่านอย่างเดียว
import java.util.Collection; import java.util.Collections; import java.util.Vector; public class CollectionReadOnly { public static void main(String[] args) { //Instantiating an ArrayList object Vector<String> vector = new Vector<String>(); vector.add("JavaFx"); vector.add("Java"); vector.add("WebGL"); vector.add("OpenCV"); System.out.println(vector); Collection<String> immutableVector = Collections.unmodifiableCollection(vector); System.out.println("Vector converted to read only "+immutableVector); immutableVector.add("CoffeeScript"); } }
ข้อยกเว้น
[JavaFx, Java, WebGL, OpenCV] Array list converted to read only [JavaFx, Java, WebGL, OpenCV] Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Unknown Source) at September19.CollectionReadOnly.main(CollectionReadOnly.java:20)
เมื่อคุณดึงข้อมูลมุมมองแบบอ่านอย่างเดียวของวัตถุ List แล้ว คุณจะไม่สามารถแก้ไขเนื้อหาได้ กล่าวคือ คุณไม่สามารถเพิ่มหรือลบองค์ประกอบจากวัตถุนั้นโดยตรงหรือใช้วัตถุ Iterator หากคุณทำเช่นนั้น UnsupportedOperationException จะได้รับการเลี้ยงดู