ในระหว่างกระบวนการเขียนโปรแกรมเรามักจะพบกับสถานการณ์ที่มีพื้นที่อาร์เรย์ไม่เพียงพอ ตัวอย่างเช่นฉันได้เริ่มต้นอาร์เรย์ int [] a = {1,2,3,4,5,6,7,8,9,10}; ในเวลานี้ฉันต้องการแทรกองค์ประกอบลงในตำแหน่งของอาร์เรย์ตัวห้อย 3 ฉันควรทำอย่างไร? มันยากเกินไปที่จะนำไปใช้ในภาษา C คุณต้องเรียกฟังก์ชั่น memcpy ทีละคน แต่มันไม่จำเป็นต้องลำบากใน Java มีวิธีการขยายตัวที่เรียกว่าอาร์เรย์ซึ่งสามารถนำไปใช้งานได้ง่าย ลองดูที่รหัส:
ชั้นเรียนสาธารณะ HelloWorld {โมฆะคงที่สาธารณะหลัก (String [] args) {// Scanner s = ใหม่สแกนเนอร์ (System.in); // system.out.println ("โปรดป้อนหมายเลข"); // int num = s.nextint (); // ตัวห้อยอาร์เรย์นี้สามารถเข้าถึง 9 int [] a = {1,2,3,4,5,6,7,8,9,10}}; // ขยาย int int แรก [] b = getArray (a, 3,100); demoe.printarray (b); } // กรณี: อาร์เรย์ได้รับการเริ่มต้นและตอนนี้แทรกองค์ประกอบ 100 ลงในตัวห้อย 3 int คงที่สาธารณะ int [] getArray (int [] a, ดัชนี int, int num) {int src_array_length = A.length; int [] b = new int [src_array_length+1]; สำหรับ (int i = 0; i <a.length; i ++) {b [i] = a [i]; } a = b; // หากคุณต้องการใช้ A ให้ทำจุดเพื่อ b // ถัดไปเริ่มจากองค์ประกอบสุดท้ายและคัดลอกองค์ประกอบก่อนหน้าขององค์ประกอบสุดท้ายไปยังหนึ่ง // และอื่น ๆ สำหรับ (int i = a.length-1; i> index; i-) {a [i] = a [i-1]; } // อย่าลืมแทรกองค์ประกอบที่จะแทรกลงในอาร์เรย์ที่สอดคล้องกันพิกัด A [index] = num; กลับ A; -คุณยังสามารถใช้ฟังก์ชั่นไลบรารีใน Java เพื่อนำไปใช้งานได้
นำเข้า Java.util.Arrays; ชั้นเรียนสาธารณะ HelloWorld {โมฆะคงที่สาธารณะหลัก (String [] args) {// Scanner s = ใหม่สแกนเนอร์ (System.in); // system.out.println ("โปรดป้อนหมายเลข"); // int num = s.nextint (); int [] a = {1,2,3,4,5}; int [] b = new int [A.Length]; // 1, อาร์เรย์ที่มา // 2, ที่จะเริ่มต้นอาร์เรย์ต้นทาง // 3, อาเรย์เป้าหมาย // 4, สถานที่เริ่มต้นอาร์เรย์เป้าหมาย // 5, คัดลอกหลายครั้ง //system.arraycopy(a, 0, b, 0, a.length); //demoe.printarray(b); // การปรับขนาด ---> ปรับสเกลเป็นสองเท่า // a = arrays.copyof (a, 2*a.length); //demoe.printarray(a); a = insertarray (a, 3, 100); // พิมพ์อาร์เรย์ System.out.println (array.toString (a)); } // เขียนฟังก์ชันเพื่อแทรกองค์ประกอบลงในตำแหน่ง POS ใด ๆ ของจำนวนเต็มอาเรย์สาธารณะคงที่ int [] insertarray (int [] a, int pos, ค่า int) {ถ้า (pos <0 || pos> a.length + 1) // ตัวห้อยดัชนีไม่ถูกต้อง // ใส่องค์ประกอบขยายขีดความสามารถก่อนจากนั้นคัดลอก A = Arrays.Copyof (A, A.Length+1); สำหรับ (int i = a.length-1; i> pos; i-) {a [i] = a [i-1]; // ย้ายกลับ} a [pos] = ค่า; กลับ A; -ผลการทำงาน:
[1, 2, 3, 100, 4, 5]
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับรหัสอินสแตนซ์การขยายอาร์เรย์ Java ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!