อาเรย์

ในบทนี้ เราจะแนะนำให้คุณได้รู้จักกับอาเรย์ การสร้างและใช้งานอาเรย์ในภาษา Java การใช้งานอาเรย์กับคำสั่ง For loop

อาเรย์ คืออะไร

อาเรย์ (Array) คือ ประเภทของข้อมูลที่สามารถเก็บข้อมูลประเภทเดียวกันแบบเป็นลำดับได้ โดยข้อมูลนั้นจะอยู่ในตัวแปรตัวเดียวกันที่เรียกว่า ตัวแปรอาเรย์ มันใช้ index ในการเข้าถึงข้อมูล ลองนึกว่าคุณมีเลข 5 ตัวที่จะเก็บในการเขียนโปรแกรม

int n1 = 10;
int n2 = -20;
int n3 = 30;
int n4 = 40;
int n5 = 60;

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

int[] number = {10, -20, 30, 40, 60};

จากการใช้อาเรย์ในการเก็บข้อมูล คุณจะพบว่ามันง่ายขึ้นมากทั้งในการประกาศตัวแปรเพียงครั้งเดียว และการกำหนดค่าให้กับอาเรย์เอง

การประกาศอาเรย์

ต่อไปเราจะมาสร้างและประกาศอาเรย์เพื่อที่จะนำไปใช้งาน การประกาศอาเรย์ในภาษา Java นั้น สำหรับตัวอย่าง

type[] name;
type[] name = new type[size];
type[] name = new type[] {value1, value2, ...};

จากรูปแบบการประกาศอาเรย์นั้น คุณสามารถทำได้ 3 แบบ ประกาศตัวแปรของอาเรย์ โดย type เป็นประเภทของข้อมูล และสามารถเป็นคลาสได้ name คือชื่อของตัวแปรอาเรย์ และในบรรทัดต่อมาเป็นการกำหนดขนาด โดยใช้คำสั่ง new และ size เป็นจำนวนเต็ม ในบรรทัดสุดท้ายเป็นการกำหนดค่าเริ่มต้นให้กับอาเรย์ โดยเราไม่ต้องกำหนดขนาด

มาดูตัวอย่างการใช้งานอาเรย์ในภาษา Java

public class CreateArray {
public static void main(String[] args) {

int[] number = new int[4];
// assign value to array
number[0] = 10;
number[1] = 25;
number[2] = -8;
number[3] = -10;

// Get array size
System.out.println("Array size is " + number.length);
// Read values
System.out.println("number[0] = " + number[0]);
System.out.println("number[1] = " + number[1]);
System.out.println("number[2] + number[3] = " + (number[2] + number[3]));

String[] names = new String[] { "Mateo", "Danny", "Janifer"};

// Using for loop reading from array
for (int i = 0; i < names.length; i++) {
System.out.println("names[" + i + "] = " + names[i]);
}

}
}

ในตัวอย่าง เราได้ประกาศอาเรย์ชื่อว่า number ที่เก็บข้อมูบประเภท int ขนาดเท่ากับ 4 เราสามารถเข้าถึงอาเรย์ได้ด้วย index ของมัน ในรูปแบบ number[index] โดย index ของอาเรย์นั้น จะเริ่มตั้งแต่ 0 นั่นหมายความว่าสมาชิกตัวสุดท้ายจะมี Index น้อยว่าขนาดจริงอยู่ 1

System.out.println("Array size is " + number.length);

ต่อมาเป็นการแสดงผลขนาดของอาเรย์ โดยใช้ property length และเราทำการแสดงผลข้อมูลจากอาเรย์ด้วย index ของมัน

        String[] names = new String[] { "Mateo", "Danny", "Jenifer"};

// Using for loop reading from array
for (int i = 0; i < names.length; i++) {
System.out.println("names[" + i + "] = " + names[i]);
}

ต่อมาเราได้ประกาศ อาเรย์ประเภท String ในการเก็บชื่อซึ่งมันมีขนาดเป็น 3 ในตอนนี้เราจะใช้คำสั่ง For loop ในการวนอ่านค่าจากอาเรย์ โดยเราใช้ i เป็น index และนี่คือผลลัพธ์เมื่อรันโปรแกรมทั้งหมด

Array size is 4
number[0] = 10
number[1] = 25
number[2] + number[3] = -18
names[0] = Mateo
names[1] = Danny
names[2] = Jenifer

ในการประกาศตัวแปรอาเรย์ ถ้าหากคุณกำหนดค่าเริ่มต้นให้กับมันด้วย คุณสามารถประกาศแบบสั้นได้ดังนี้

int[] number = { 2, 11, 15, 18, 22, 27, 16, 30 }; // shorter version
int[] number = new int[] { 2, 11, 15, 18, 22, 27, 16, 30 };

อาเรย์ 2 มิติ

ในภาษา Java อาเรย์สามารถเป็นแบบสองมิติได้ โดยอาเรย์สองมิตินั้นจะเป็นเหมือนการเก็บค่าในตารางที่มีแถวและคอลัมน์ โดยรูปแบบการประกาศอาเรย์สองมิติเป็นดังนี้

type [][] name = new type[ROW][COLUMN];

ในการประกาศอาเรย์ 2 มิตินั้น นั้นจะคล้ายกับอาเรย์ 1 มิติ แต่มันจะใช้เครื่องหมาย [][] โดยแต่ละคู้นั้นแสดงสำหรับแถวและคอลัมน์โดย ROW คือจำนวนของแถวของอาเรย์ และ COLUMN หรือขนาดคอลัมน์ของอาเรย์ ดังนั้นจำนวนสมาชิกของมันจึงเป็น ROW * COLUMN มาดูตัวอย่างการประกาศอาเรย์ 2 มิติในภาษา Java

int [][] number = new int[4][4];
char [][] c = new char[][] { {'A', 'B', 'C'}, {'D', 'E', 'F'} };

ข้างล่างเป็นการประกาศอาเรย์ 2 มิติ แบบแรกประกาศอาเรย์สำหรับเก็บค่าของ Integer โดยมีขนาดเป็น 4 x 4 คุณสามารถกำหนดค่าเริ่มต้นให้กับมันได้ และถ้าหากค่าเริ่มต้นถูกกำหนด ไม่ต้องใส่ขนาดของมัน เหมือนในบรรทัดต่อมา

public class TwoDimensionArray {
public static void main(String[] args) {
final int ROW = 3, COLUMN = 4;
int score[][] = new int[ROW][COLUMN];
int data = 5;

// Assigning values
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COLUMN; j++) {
score[i][j] = data;
data += 5;
}
}

// Printing array
System.out.println("Array");
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COLUMN; j++) {
System.out.print("\t" + score[i][j]);
}
System.out.println();
}

// Printing array's transpose
System.out.println("Transpose array");
for (int i = 0; i < COLUMN; i++) {
for (int j = 0; j < ROW; j++) {
System.out.print("\t" + score[j][i]);
}
System.out.println();
}

// Find a summation and an average
int sum = 0;
for (int i = 0; i < COLUMN; i++) {
for (int j = 0; j < ROW; j++) {
sum += score[j][i];
}
}
System.out.println("Array's sum = " + sum);
System.out.println("Array's avg = " + (float)(sum) / (ROW * COLUMN));

}
}

ในโค้ดตัวอย่างเป็นการสร้างอาเรย์ 2 มิติ ที่มีขนาด 3 x 4 ดังนั้น เราได้ใช้ Nested For loop ในการกำหนดค่าให้กับอาเรย์ โดยเริ่มให้ค่าแรกเป็น 5 และเพิ่มค่าขึ้นเรื่อยๆ จากตัวแปร data โดยลูปด้านนอกจะเป็น ROW และลูปด้านในจะเป็น COLUMN เรารับค่าและแสดงผลของมันออกทางจอภาพปกติ ต่อมาเราแสดง Transpose ของอาเรย์ คุณสังเกตุว่าในตอนนี้ เราใช้ COLUMN เป็นลูปด้านนอกแทน

        for (int i = 0; i < COLUMN; i++) {
for (int j = 0; j < ROW; j++) {
...

และนอกจากนี้ เรายังหาผลรวมของอาเรย์ และเก็บในตัวแปร sum และหาค่าเฉลี่ยนของมัน ซึ่งนี่เป็นผลลัพธ์ทั้งหมดดังข้างล่าง

Array
5 10 15 20
25 30 35 40
45 50 55 60
Transpose array
5 25 45
10 30 50
15 35 55
20 40 60
Array's sum = 390
Array's avg = 32.5

อาเรย์ 3 มิติ และอาเรย์หลายมิติ

และแน่นอน คุณสามาถประกาศอาเรย์ 3 มิติ 4 มิติ และ 5 มิติได้ตามที่คุณต้องการ โดยการเพิ่มเครื่องหมาย [] แต่อย่างไรก็ตามในการเขียนโปรแกรม เรามักจะใช้งานมากที่สุด 3 มิติ คุณสามารถประกาศอาเรย์หลายมิติได้ดังตัวอย่างข้างล่าง

int[][][] threeDimension = new int[3][4][5];
int[] ... [] multiDimension = new int[dim_1] ... [dim_n];

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับอาเรย์ในภาษา Java เพื่อเก็บข้อมูลประเภทเดียวกันคราวละมากๆ และการใช้งานอาเรย์ทั้ง 1 มิติ และ 2 มิติ นอกจากนี้ยังทราบว่าอาเรย์นั้นจะทำงานได้ดีกับคำสั่ง For loop


บทความเกี่ยวกับ อาเรย์

อาเรย์ ในภาษา C

ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับอาเรย์ในภาษา C ซึ่งคุณได้เห็นการใช้งานของอาเรย์ไปบ้างแล้วในบทก่อนหน้า อาเรย์ คือตัวแปรที่เก็บข้อมูลเป็นชุดข้อมูล โดยข้อมูลของอาเ...

อาเรย์ ในภาษา C#

อาเรย์เป็นประเภทข้อมูลชนิดหนึ่ง ที่คุณสามารถเก็บค่าตัวแปรประเภทเดียวกันได้หลายๆ ค่าไว้ในตัวแปรเดียวที่เรียกว่า ตัวแปรอาเรย์ ในการสร้างอาเรย์ในภาษา C# มีรูปแบบด...

อาเรย์ ในภาษา Visual Basic

อาเรย์ คือประเภทข้อมูลที่สามารถเก็บข้อมูลประเภทเดียวกันได้หลายๆ ตัวในหนึ่งตัวแปร เราเรียกว่าตัวแปรอาเรย์ มันเป็นชุดของข้อมูลที่จัดเก็บข้อมูลเรียงต่อกันภายในหน่ว...

อาเรย์ ในภาษา C++

อาเรย์เป็นตัวแปรประเภทหนึ่งในภาษา C++ มันสามารถเก็บข้อมูลที่เป็นชุดไว้ในตัวแปรเดียวโดยการใช้ index เพื่อเป็นตัวชี้ของตำแหน่งข้อมูล ดังนั้นอาเรย์จึงเป็นตัวแปรประ...

อาเรย์ ในภาษา PHP

อาเรย์ (Array) คือประเภทข้อมูลที่เก็บข้อมูลเป็นชุดลำดับเรียงต่อกันในหน่วยความจำ อาเรย์เป็นตัวแปรประเภทหนึ่งในภาษา PHP ที่สามารถเก็บข้อมูลได้มากกว่าหนึ่งค่า อาเร...