ใน Java 9 มีการเพิ่มวิธีการจากโรงงานหลายวิธีใน คอลเลกชัน API . โดยใช้วิธีโรงงานเหล่านี้ เราสามารถสร้าง ไม่สามารถแก้ไขได้ แสดงรายการ ตั้งค่า และแมปวัตถุคอลเลกชัน เพื่อลดจำนวนบรรทัดของรหัส List.of(), Set.of() , แผนที่ของ() และ Map.ofEntries() เป็นวิธีการแบบคงที่ของโรงงานที่ให้วิธีการที่สะดวกในการสร้าง ไม่เปลี่ยนรูป คอลเลกชัน ใน Java 9.
ประโยชน์ของคอลเล็กชันที่ไม่เปลี่ยนรูป
- พื้นที่ฮีปน้อยลง: พื้นที่ที่จำเป็นในการจัดเก็บข้อมูลคอลเล็กชันนั้นน้อยกว่ามากเมื่อเทียบกับวิธีการดั้งเดิมใน java เวอร์ชันก่อนหน้า
- เข้าถึงข้อมูลได้เร็วขึ้น: เป็นค่าใช้จ่ายในการจัดเก็บข้อมูลและรวมเข้ากับ Collections.unmodifiable ลดลง ตอนนี้การเข้าถึงข้อมูลเร็วขึ้น หมายความว่าโปรแกรมประสิทธิภาพโดยรวมเพิ่มขึ้น
- ความปลอดภัยของเธรด :คอลเล็กชันที่ไม่เปลี่ยนรูปนั้นปลอดภัยสำหรับเธรด . เนื่องจากเธรดทั้งหมดมีมุมมองข้อมูลพื้นฐานเหมือนกันเสมอ
ไวยากรณ์
List.of(elements...) Set.of(elements...) Map.of(k1, v1, k2, v2)
ตัวอย่าง
import java.util.Set; import java.util.List; import java.util.Map; public class ImmutableCollectionsTest { public static void main(String args[]) { List<String> stringList = List.of("a", "b", "c"); System.out.println("List values: " + stringList); Set<String> stringSet = Set.of("a", "b", "c"); System.out.println("Set values: " + stringSet); Map<String, Integer> stringMap = Map.of("a", 1, "b", 2, "c", 3); System.out.println("Map values: " + stringMap); } }
ผลลัพธ์
List values: [a, b, c] Set values: [a, b, c] Map values: {a=1, b=2, c=3}