Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

มีการเพิ่มวิธีการใหม่ในคลาส Arrays ใน Java 9 อย่างไร


คลาสอาร์เรย์มีเมธอดต่างๆ ในการจัดการอาร์เรย์ และยังมีเมธอดของโรงงานแบบสแตติกที่อนุญาตให้อาร์เรย์ดูเป็นรายการได้ Java 9 ได้เพิ่มวิธีการที่สำคัญสามวิธีในคลาส Arrays:Arrays.equals() , Arrays.compare() และ Arrays.mismatch() .

Arrays.equal() - ใน Java 9 มีการเพิ่มวิธีการโอเวอร์โหลดสองสามวิธีใน Arrays.equals() กระบวนการ. วิธีการใหม่ใช้ fromIndex และ toIndex พารามิเตอร์สำหรับอาร์เรย์ทั้งสองที่ให้มา วิธีการเหล่านี้จะตรวจสอบความเท่าเทียมกันของอาร์เรย์ทั้งสองตามตำแหน่งดัชนีสัมพัทธ์

ไวยากรณ์

บูลีนคงที่สาธารณะเท่ากับ (int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex) 

ในไวยากรณ์ข้างต้น เมธอดจะคืนค่า จริง หากอาร์เรย์ ints ที่ระบุสองรายการและช่วงที่ระบุมีค่าเท่ากับอาร์เรย์อื่น วิธีที่สองทำงานเหมือนกันสำหรับอาร์เรย์ของตัวอักษร

ตัวอย่าง

<ก่อน>นำเข้า java.util.Arrays; คลาสสาธารณะ CompareArrayTest { โมฆะคงที่สาธารณะ arrayEqualsTest () { int [] มีอยู่แถว ={0, 1, 2, 3, 4, 5}; int[] แถวใหม่ ={3, 4, 5, 1, 2, 0}; System.out.println(อาร์เรย์ .เท่ากับ (existRows, newRows)); System.out.println(อาร์เรย์ .เท่ากับ (existRows, 1, 3, newRows, 3, 5)); System.out.println(อาร์เรย์ .เท่ากับ (existRows, 3, 5, newRows, 0, 2)); } โมฆะคงที่สาธารณะหลัก (สตริง args []) { CompareArrayTest.arrayEqualsTest (); }}

ผลลัพธ์

เท็จจริง


Arrays.compare() − ใน Java 9 มีการเพิ่มพารามิเตอร์บางส่วนใน Arrays.compare() กระบวนการ. ด้วย fromIndex/toIndex พารามิเตอร์ที่ใช้สำหรับการเปรียบเทียบตำแหน่งสัมพัทธ์

ไวยากรณ์

การเปรียบเทียบสแตติกสาธารณะแบบคงที่ (int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex) 

ในไวยากรณ์ข้างต้น เมธอดจะเปรียบเทียบอาร์เรย์ int สองชุด เชิงพจนานุกรม เกินขอบเขตที่กำหนด

ตัวอย่าง

<ก่อนหน้า>นำเข้า java.util.Arrays คลาสสาธารณะ LexicographicalArraysTest { โมฆะคงที่สาธารณะหลัก (สตริง args []) { LexicographicalArraysTest.compareSliceArraysTest (); } โมฆะคงที่สาธารณะ CompareSliceArraysTest() { int[] tomMarks ={5, 6, 7, 8, 9, 10}; int[] daisyMarks ={5, 6, 7, 10, 9, 10}; int[] maryMarks ={5, 6, 7, 8}; System.out.println(Arrays.compare (tomMarks, 0, 3, daisyMarks, 0, 3)); System.out.println(Arrays.compare (tomMarks, 0, 4, maryMarks, 0, maryMarks.length)); System.out.println(Arrays.compare (daisyMarks, 0, 4, maryMarks, 0, maryMarks.length)); }}

ผลลัพธ์

001 


Arrays.mismatch() - ใน Java 9 มีวิธีการโอเวอร์โหลดอื่น ๆ ของ Arrays.mismatch() วิธีที่ช่วยให้เราสามารถค้นหาและส่งคืนดัชนีของความไม่ตรงกันครั้งแรกระหว่างสองส่วนของอาร์เรย์

ไวยากรณ์

สแตติก int ไม่ตรงกันสาธารณะ (int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex) 

ในไวยากรณ์ข้างต้น เมธอดจะค้นหาและส่งกลับ relative ดัชนี ของความไม่ตรงกันครั้งแรกระหว่างสองอาร์เรย์ int ในช่วงที่ระบุ จะส่งกลับ -1 หากไม่พบไม่ตรงกัน ดัชนีในช่วง 0 (รวม) จนถึงความยาว (รวม) ของช่วงที่เล็กกว่า

ตัวอย่าง

<ก่อนหน้า>นำเข้า java.util.Arrays คลาสสาธารณะ MismatchMethodTest { โมฆะคงที่สาธารณะหลัก (สตริง [] args) { MismatchMethodTest.mismatchArraysTest (); } โมฆะคงที่สาธารณะ mismatchArraysTest() { int[] a ={1, 2, 3, 4, 5}; int[] b ={1, 2, 3, 4, 5}; int[] c ={1, 2, 4, 4, 5, 6}; System.out.println(Arrays.mismatch (a, b)); System.out.println(Arrays.mismatch (a, c)); System.out.println(Arrays.mismatch (a, 0, 2, c, 0, 2)); System.out.println(Arrays.mismatc (a, 0, 3, c, 0, 3)); System.out.println(Arrays.mismatch (a, 2, a.length, c, 2, 5)); }}

ผลลัพธ์

-12-120