750 likes | 820 Vues
บทที่ 1. อาร์เรย์ (Array). 5. 2. 3. 4. 1. 6. การสร้างอาร์เรย์ 2 มิติ. การคัดลอกข้อมูลในอาร์เรย์. การค้นหาข้อมูลในอาร์เรย์. การจัดเรียงข้อมูลในอาร์เรย์ (Sort). การใช้พื้นที่ในหน่วยความจำร่วมกันของอาร์เรย์. การใช้อาร์เรย์สองมิติที่แต่ละแถวมีข้อมูลไม่เท่ากัน. อาร์เรย์. อาร์เรย์.
E N D
บทที่ 1 อาร์เรย์ (Array)
5 2 3 4 1 6 การสร้างอาร์เรย์ 2 มิติ การคัดลอกข้อมูลในอาร์เรย์ การค้นหาข้อมูลในอาร์เรย์ การจัดเรียงข้อมูลในอาร์เรย์ (Sort) การใช้พื้นที่ในหน่วยความจำร่วมกันของอาร์เรย์ การใช้อาร์เรย์สองมิติที่แต่ละแถวมีข้อมูลไม่เท่ากัน อาร์เรย์ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
อาร์เรย์ • เช่น • int[] students; • double[] amounts; • char[] letters; • หรือ • int students[]; • double amounts[]; • char letters[]; ชนิดของตัวแปรอาร์เรย์[] ชื่อของตัวแปร; ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
ชื่อของ อาร์เรย์ ชนิดของข้อมูลที่เก็บได้ ประกาศอาร์เรย์ใช้เก็บเลขจำนวนเต็ม int [] stu = new int[5]; ใช้ คำสั่ง new ในการจองพื้นที่ที่ ชนิด int จำนวน 5 ตัว ดัชนีของอาร์เรย์ stu 0 0 0 0 0 stu[0] stu [1] stu [2] stu [3] stu [4] stu.length จะมีค่าเท่ากับ 5 อาร์เรย์ • การจองพื้นที่ในหน่วยความจำสามารถทำได้ดังนี้ • int[] students = new int[5]; ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การกำหนดค่าเริ่มต้นให้กับอาร์เรย์การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ • class array1 { • public static void main (String[] args) { • int[] stu = new int[5]; • for (int i=0; i<stu.length; i++) { • System.out.printf("stu[%d] = %d%n",i,stu[i]); • } • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การกำหนดค่าเริ่มต้นให้กับอาร์เรย์การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ • ผลลัพธ์ที่ได้คือ • stu[0] = 0 • stu[1] = 0 • stu[2] = 0 • stu[3] = 0 • stu[4] = 0 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การกำหนดค่าเริ่มต้นให้กับอาร์เรย์การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ • class array2 { • public static void main (String[] args) { • int[] stu = new int[7]; • stu[1] = 5; • stu[3] = 7; • stu[6] = 6; • for (int i=0; i<stu.length; i++) { • System.out.printf("stu[%d] = %d%n",i,stu[i]); • } • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การกำหนดค่าเริ่มต้นให้กับอาร์เรย์การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ • ผลลัพธ์ที่ได้คือ • stu[0] = 0 • stu[1] = 5 • stu[2] = 0 • stu[3] = 7 • stu[4] = 0 • stu[5] = 0 • stu[6] = 6 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การกำหนดค่าเริ่มต้นให้กับอาร์เรย์การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ • class array3 { • public static void main (String[] args) { • int[] arr = {8,9,6,3}; • for (int i=0; i<arr.length; i++) { • System.out.printf("arr[%d] = %d%n",i,arr[i]); • } • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การกำหนดค่าเริ่มต้นให้กับอาร์เรย์การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ • ผลลัพธ์ที่ได้เป็นดังนี้ • arr[0] = 8 • arr[1] = 9 • arr[2] = 6 • arr[3] = 3 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การรับข้อมูลเข้าทางคีย์บอร์ดเพื่อเก็บค่าไว้ในอาร์เรย์การรับข้อมูลเข้าทางคีย์บอร์ดเพื่อเก็บค่าไว้ในอาร์เรย์ • import java.util.Scanner; • class array4 { • public static void main (String[] args) { • Scanner input = new Scanner(System.in); • int[] arr; • int num,sum=0; • double average = 0.0; • System.out.print("How many number do you want:"); • num = input.nextInt(); • arr = new int[num]; ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การรับข้อมูลเข้าทางคีย์บอร์ดเพื่อเก็บค่าไว้ในอาร์เรย์การรับข้อมูลเข้าทางคีย์บอร์ดเพื่อเก็บค่าไว้ในอาร์เรย์ • for (int i=0; i<arr.length; i++) { • System.out.printf("input arr[%d] :",i); • arr[i] = input.nextInt(); • sum += arr[i]; • } • average = sum/arr.length; • System.out.printf("Sum is %d%n",sum); • System.out.printf("Average is %.2f%n",average); • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การรับข้อมูลเข้าทางคีย์บอร์ดเพื่อเก็บค่าไว้ในอาร์เรย์การรับข้อมูลเข้าทางคีย์บอร์ดเพื่อเก็บค่าไว้ในอาร์เรย์ • เมื่อรันโปรแกรมแล้วทดลองกำหนดขนาดของอาร์เรย์เป็น 4 แล้วใส่ตัวเลข 9 8 6 3 ผลลัพธ์ที่ได้เป็นดังนี้ • How many number do you want:4 • input arr[0] :9 • input arr[1] :8 • input arr[2] :6 • input arr[3] :3 • Sum is 26 • Average is 6.00 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การใช้พื้นที่ในหน่วยความจำร่วมกันของอาร์เรย์การใช้พื้นที่ในหน่วยความจำร่วมกันของอาร์เรย์ • class array5 { • public static void main (String[] args) { • int[] arr = {8,9,6,3}; • System.out.println("*** Before ***"); • for (int i=0; i<arr.length; i++) { • System.out.printf("arr[%d] = %d%n",i,arr[i]); • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การใช้พื้นที่ในหน่วยความจำร่วมกันของอาร์เรย์การใช้พื้นที่ในหน่วยความจำร่วมกันของอาร์เรย์ • int[] newArr = arr; • newArr[1] = 4; • newArr[3] = 2; • System.out.println("*** After ***"); • for (int i=0; i<arr.length; i++) { • System.out.printf("arr[%d] = %d%n",i,arr[i]); • } • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การใช้พื้นที่ในหน่วยความจำร่วมกันของอาร์เรย์การใช้พื้นที่ในหน่วยความจำร่วมกันของอาร์เรย์ • ผลลัพธ์ที่ได้คือ • *** Before *** • arr[0] = 8 • arr[1] = 9 • arr[2] = 6 • arr[3] = 3 • *** After *** • arr[0] = 8 • arr[1] = 4 • arr[2] = 6 • arr[3] = 2 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • ทำได้สามวิธี วิธีแรกเราต้องทำการสร้างอาร์เรย์อีกชุดหนึ่งแล้วทำการคัดลอกข้อมูลจากอาร์เรย์ตัวเดิมมาไว้ในอาร์เรย์ตัวใหม่ทีละข้อมูล ๆ ไปเรื่อย ๆ จนข้อมูลหมด ทำได้ดังตัวอย่างต่อไปนี้ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • class array6 { • public static void main (String[] args) { • int[] arr = {8,9,6,3}; • int[]newArr = new int[arr.length]; • for (int i=0; i<arr.length; i++) { • System.out.printf("arr[%d] = %d%n",i,arr[i]); • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • for (int i=0; i<arr.length; i++) { • newArr[i] = arr[i]; • } • for (int i=0; i<newArr.length; i++) { • System.out.printf("newArr[%d] = %d%n",i,newArr[i]); • } • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • ผลลัพธ์ที่ได้คือ • arr[0] = 8 • arr[1] = 9 • arr[2] = 6 • arr[3] = 3 • newArr[0] = 8 • newArr[1] = 9 • newArr[2] = 6 • newArr[3] = 3 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • วิธีที่สองต้องใช้เมดธอด (Method) arraycopy() ทำการคัดลอกข้อมูลจากอาร์เรย์ต้นทางไปยังอาร์เรย์ปลายทาง ดังตัวอย่างต่อไปนี้ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • class array7 { • public static void main(String[] args) { • int[] arr = {8,9,6,3}; • int[] newArr = new int[arr.length]; • System.arraycopy(arr, 0, newArr, 0, arr.length); • for(int i = 0; i < newArr.length; i++) • System.out.printf("newArr[%d] = %d%n",i,newArr[i]); • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • ผลลัพธ์ที่ได้คือ • newArr[0] = 8 • newArr[1] = 9 • newArr[2] = 6 • newArr[3] = 3 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • จากบรรทัด System.arraycopy(arr, 0, newArr, 0, arr.length); ภายในวงเล็บมีตัวแปร 5 ตัว โดยมีเงื่อนไขดังนี้ • ตัวแปรตัวแรกเป็นอาร์เรย์ต้นทางที่ต้องการคัดลอก (arr) • ตัวแปรตัวที่สองเป็นดัชนีเริ่มต้นของอาร์เรย์ต้นทาง (0) • ตัวแปรตัวที่สามเป็นอาร์เรย์ปลายทางที่ต้องการสร้าง (newArr) • ตัวแปรตัวที่สี่เป็นดัชนีเริ่มต้นของอาร์เรย์ปลายทาง (0) • ตัวแปรตัวที่ห้าเป็นขนาดของข้อมูลที่ต้องการคัดลอก (arr.length) ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • คัดลอกข้อมูลโดยใข้คำสั่ง System.arraycopy() สามารถคัดลอกข้อมูลบางส่วนได้ ไม่จำเป็นต้องคัดลอกข้อมูลทั้งหมด แสดงได้ดังตัวอย่างต่อไปนี้ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • class array8 { • public static void main(String[] args) { • int[] arr = {8,9,6,3}; • int[] newArr = new int[arr.length-1]; • System.arraycopy(arr, 1, newArr, 0, arr.length - 2); • for(int i=0;i<newArr.length;i++) • System.out.printf("newArr[%d] = %d%n",i, newArr[i]); • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • ผลลัพธ์ที่ได้คือ • newArr[0] = 9 • newArr[1] = 6 • newArr[2] = 0 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • วิธีที่สามใช้เมดธอด clone() ซึ่งเป็นการคัดลอกข้อมูลจากอาร์เรย์ต้นทางไปยังปลายทางเช่นกัน พิจารณาตัวอย่างต่อไปนี้ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • class array9 { • public static void main(String[] args) { • int[] arr = {8,9,6,3}; • int[] newArr = (int[])arr.clone(); • for(int i=0;i<newArr.length;i++) • System.out.printf("newArr[%d] = %d%n",i, newArr[i]); • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การคัดลอกข้อมูลในอาร์เรย์การคัดลอกข้อมูลในอาร์เรย์ • ผลลัพธ์ที่ได้คือ • newArr[0] = 8 • newArr[1] = 9 • newArr[2] = 6 • newArr[3] = 3 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาข้อมูลในอาร์เรย์การค้นหาข้อมูลในอาร์เรย์ • การค้นหาข้อมูลในอาร์เรย์สามารถทำได้ 2 วิธี คือ • การค้นหาแบบเรียงลำดับ (Sequential search) • และการค้นหาแบบไบนารี (Binary search) ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาข้อมูลในอาร์เรย์การค้นหาข้อมูลในอาร์เรย์ • การค้นหาแบบเรียงลำดับ (Sequential search) • ในการค้นหาข้อมูลแบบเรียงลำดับนั่นก็คือเราต้องเริ่มต้นค้นหาข้อมูลตั้งแต่ตัวแรกสุดในอาร์เรย์ โดยทำการเปรียบเทียบข้อมูลที่เราต้องการค้นหากับข้อมูลในอาร์เรย์ว่าตรงกันหรือไม่ ถ้าตรงกันก็ให้หยุดค้นหา แต่ถ้าค้นหาไปจนกระทั่งถึงช่องสุดท้ายก็ยังไม่เจอ นั่นแสดงว่าข้อมูลที่เราต้องการค้นหาไม่อยู่ในอาร์เรย์นั้น พิจารณาตัวอย่างต่อไปนี้ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาแบบเรียงลำดับ (Sequential search) • class array10 { • public static void main(String[] args) { • int[] arr = {8,9,6,3}; • int num = 9; • int i = 0; • for (i=0;i<arr.length;i++) { • if(num == arr[i]){ • System.out.printf("%d is in array.%n",num); • break; • } • } • if (i == arr.length) • System.out.printf("%d is not in array.%n",num); • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาแบบเรียงลำดับ (Sequential search) • ผลลัพธ์ที่ได้คือ • 9 is in array. • การค้นหาข้อมูลแบบนี้อาจดูเป็นการค้นหาที่ง่ายต่อการเขียนโปรแกรมเพราะจะทำการเริ่มต้นค้นหาข้อมูลตั้งแต่ตัวแรกไปจนถึงตัวสุดท้าย ถ้าเจอตั้งแต่ต้น ๆ ก็ดี แต่ถ้าไม่เจอก็ต้องค้นหาไปจนถึงตัวสุดท้ายก่อนถึงจะบอกได้ว่าไม่เจอ ถ้าข้อมูลในอาร์เรย์มีจำนวนมาก จะทำให้เสียเวลาในการค้นหานานมากกว่าจะรู้ว่าไม่เจอ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาแบบไบนารี่ (Binary search) • หลักการคิดคือเราจะต้องทำการแบ่งข้อมูลออกเป็นสองส่วนก่อนจะเริ่มทำการค้นหาข้อมูลทุกครั้ง โดยข้อมูลที่เราต้องการจะค้นหาต้องนำไปเปรียบเทียบกับข้อมูลในอาร์เรย์ ณ ตำแหน่งกึ่งกลางของอาร์เรย์ ถ้าข้อมูลที่เราต้องการค้นหามีค่าน้อยกว่าตำแหน่งนี้เราจะทำการค้นหาข้อมูลต่อไปทางด้านซ้ายของอาร์เรย์ชุดนี้ • แต่ถ้าข้อมูลที่ต้องการค้นหามีค่ามากกว่าตำแหน่งกึ่งกลางนี้ เราจะทำการค้นหาข้อมูลต่อไปทางด้านขวาของอาร์เรย์ชุดนี้ ทำเช่นนี้ไปเรื่อย ๆ จนกว่าจะพบข้อมูลที่ต้องการค้นหา หรือไม่ก็หยุดถ้าไม่เจอข้อมูลนั้น • แต่การค้นหาข้อมูลแบบไบนารีนั้นจำเป็นต้องจัดเรียงข้อมูลให้เรียงลำดับจากน้อยไปหามากมาก่อนทำการค้นหาข้อมูล มิฉะนั้นจะทำการค้นหาแบบไบนารีไม่ได้ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาแบบไบนารี่ (Binary search) • class array11 { • public static void main(String[] args) { • int[] arr = {0,1,2,3,4,5,6,7,8,9,10}; • int num=3; • int head = 0; • int tail = arr.length - 1; • int middle; • boolean found = false; ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาแบบไบนารี่ (Binary search) • while(head <= tail) { • middle = (head + tail) / 2; • if(num == arr[middle]) { • found = true; • break; • } • else if(num < arr[middle]) • tail = middle - 1; • else • head = middle + 1; • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาแบบไบนารี่ (Binary search) • if(found) • System.out.printf("Found %d.%n",num); • else • System.out.printf("%d not found.%n",num); • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาแบบไบนารี่ (Binary search) • ผลลัพธ์ที่ได้คือ • Found 3. • จากตัวอย่างที่ผ่านมาอาจดูเหมือนว่ายากต้องเขียนโปรแกรมยาวกว่าจะได้คำตอบ ซึ่งที่จริงแล้ว จาวามีเมดธอดหนึ่งที่ชื่อว่า binalrySearch() เป็นเมดธอดที่ทำการค้นหาแบบไบนารีให้เราได้ (แต่ข้อมูลต้องเรียงจากน้อยไปหามาก) ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาแบบไบนารี่ (Binary search) • import java.util.Arrays; • class array12 { • public static void main(String[] args) { • int[] arr = {0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; • int num = 3; • int found = Arrays.binarySearch(arr, num); • if(found >= 0) • System.out.printf("Found %d at index %d.%n",num,found); • else • System.out.printf("%d is not in array.%n",found); • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การค้นหาแบบไบนารี่ (Binary search) • ผลลัพธ์คือ • Found 3 at index 3. ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การจัดเรียงข้อมูลในอาร์เรย์ (Sort) • ในกรณีจากจัดเรียงข้อมูลจากน้อยไปหามากก็เช่นกัน สามารถทำได้ด้วยการใช้เมดธอด Arrays.sort() ดังตัวอย่างต่อไปนี้ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การจัดเรียงข้อมูลในอาร์เรย์ (Sort) • import java.util.Arrays; • class array13 { • public static void main(String[] args) { • int[] arr = new int[20]; • int i; • for(i = 0; i < arr.length; i++) • arr[i] = (int)(Math.random() * 100 + 1); • for(i = 0; i < arr.length; i++) { • if(i % 10 == 0) • System.out.println(); • System.out.printf("%d \t",arr[i]); • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การจัดเรียงข้อมูลในอาร์เรย์ (Sort) • System.out.println(); • Arrays.sort(arr); • for(int j = 0; j < arr.length; j++) { • if(j % 10 == 0) • System.out.println(); • System.out.printf("%d \t",arr[j]); • } • System.out.println(); • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การจัดเรียงข้อมูลในอาร์เรย์ (Sort) • ผลลัพธ์ที่ได้คือ • 57 2 78 93 69 11 83 50 9 12 • 90 31 56 90 72 85 80 90 38 85 • 2 9 11 12 31 38 50 56 57 69 • 72 78 80 83 85 85 90 90 90 93 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การสร้างอาร์เรย์ 2 มิติ • ในการประกาศอาร์เรย์สองมิติสามารถทำได้ด้วยการเพิ่มเครื่องหมาย [] เข้าไปอีกหนึ่งตัวจากเดิมเพื่อเป็นการบอกจาวาว่ามีสองมิติ ตัวอย่างเช่น • int [] [] arr2 = new int[5][5]; • ซึ่งหมายถึงการประกาศ arr2 ให้เป็นอาร์เรย์ 2 มิติ ที่มี 5 แถว ๆ ละ 5 ช่อง ดังรูป ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
ชื่อของ array และ ดัชนีของข้อมูลแต่ละตัว (index) ดัชนีของข้อมูลในแต่ละแถว [0] [1] [2] [3] [4] arr2[0] arr2 [1] arr2 [2] arr2 [3] arr2 [4] int [] [] arr2 = new int [5] [5]; การสร้างอาร์เรย์ 2 มิติ ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การสร้างอาร์เรย์ 2 มิติ • class array14 { • public static void main(String[] args) { • int[][] arr2 = new int[5][5]; • for(int i = 0; i < arr2.length; i++) { • for(int j = 0; j < arr2[i].length; j++) { • System.out.printf("%d \t",arr2[i][j]); • } • System.out.println(); • } • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การสร้างอาร์เรย์ 2 มิติ • ผลลัพธ์ที่ได้คือ • 0 0 0 0 0 • 0 0 0 0 0 • 0 0 0 0 0 • 0 0 0 0 0 • 0 0 0 0 0 ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
การสร้างอาร์เรย์ 2 มิติ • class array15 { • public static void main(String[] args) { • int[][] arr2 = new int[5][5]; • for(int i = 0; i < arr2.length; i++) { • for(int j = 0; j < arr2[i].length; j++) { • arr2[i][j] = (int) (Math.random() * 10 + 1); • } • } ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล