JShell เป็นเครื่องมือบรรทัดคำสั่งใน Java 9 ที่ใช้ในการรันคำสั่งง่ายๆ เช่น นิพจน์ คลาส อินเตอร์เฟส เมธอด และอื่นๆ
A ชุด เป็นอินเทอร์เฟซใน Java ที่ระบุสัญญาสำหรับคอลเลกชันที่มี องค์ประกอบที่ไม่ซ้ำกัน . ถ้า object1.equals(object2) คืนค่า จริง จากนั้นเพียงหนึ่งใน object1 และ object2 เท่านั้นที่มีที่ในการใช้งาน Set
ในข้อมูลโค้ดด้านล่าง เราต้องใช้ Set.of() กระบวนการ. คอลเลกชันที่ส่งคืนโดย Set.of() วิธีการ ไม่เปลี่ยนรูป ดังนั้นจึงไม่รองรับ add() กระบวนการ. หากเราพยายามเพิ่มองค์ประกอบ ให้แสดง UnsupportedOperationException . หากเราต้องการสร้าง HashSet คอลเลกชันแทนซึ่งสนับสนุน add() วิธีการทดสอบคุณสมบัติเฉพาะของชุด คืนค่า false บ่งชี้ว่าการแทรกรายการ "Adithya" ที่ซ้ำกันล้มเหลว
Snippet-1
jshell> Set<String> set = Set.of("Adithya", "Chaitanya", "Jai"); set ==> [Jai, Adithya, Chaitanya] jshell> set.add("Adithya"); | java.lang.UnsupportedOperationException thrown: jshell> Set<String> hashSet = new HashSet<>(set); hashSet ==> [Chaitanya, Jai, Adithya] jshell> hashSet.add("Adithya"); $8 ==> false jshell> hashSet hashSet ==> [Chaitanya, Jai, Adithya]
ในข้อมูลโค้ดด้านล่าง เราต้องใช้ HashSet โดยที่องค์ประกอบจะไม่ถูกจัดเก็บตามลำดับการแทรกหรือเรียงลำดับ
Snippet-2
jshell> Set<Integer> numbers = new HashSet<>(); numbers ==> [] jshell> numbers.add(12345); $11 ==> true jshell> numbers.add(1234); $12 ==> true jshell> numbers.add(123); $13 ==> true jshell> numbers.add(12); $14 ==> true jshell> numbers numbers ==> [1234, 12345, 123, 12]
ฉัน ในข้อมูลโค้ดด้านล่าง เราต้องใช้ LinkedHashSet ซึ่งองค์ประกอบจะถูกจัดเก็บในลำดับของ การแทรก .
Snippet-3
jshell> Set<Integer> numbers1 = new LinkedHashSet<>(); numbers1 ==> [] jshell> numbers1.add(12345); $17 ==> true jshell> numbers1.add(1234); $18 ==> true jshell> numbers1.add(123); $19 ==> true jshell> numbers1.add(12); $20 ==> true jshell> numbers1 numbers1 ==> [12345, 1234, 123, 12] jshell> numbers1.add(123456); $22 ==> true jshell> numbers1 numbers1 ==> [12345, 1234, 123, 12, 123456]
ฉัน ในข้อมูลโค้ดด้านล่าง เราต้องใช้ TreeSet ซึ่งองค์ประกอบจะถูกเก็บไว้ใน การเรียงลำดับ .
Snippet-4
jshell> Set<Integer> numbers2 = new TreeSet<>(); numbers2 ==> [] jshell> numbers2.add(12345); $25 ==> true jshell> numbers2.add(1234); $26 ==> true jshell> numbers2.add(123); $27 ==> true jshell> numbers2.add(12); $28 ==> true jshell> numbers2 numbers2 ==> [12, 123, 1234, 12345] jshell> numbers2.add(123456); $30 ==> true jshell> numbers2 numbers2 ==> [12, 123, 1234, 12345, 123456]