© Khmer Angkor Academy - sophearithput168

អារេ (Arrays)

Arrays (អារេ) ក្នុង Java

📦 Array គឺជាអ្វី?

Array គឺ container ដែលអាចរក្សាទុកទិន្នន័យច្រើនក្នុង variable តែមួយ។ ទិន្នន័យទាំងអស់ត្រូវតែប្រភេទដូចគ្នា។

ឧទាហរណ៍ក្នុងជីវិតពិត:

  • ប្រអប់: ប្រអប់មួយដាក់របស់ច្រើន
  • ធ្នើរ: Shelf មួយមានសៀវភៅច្រើន
  • អាផាតមិន: បន្ទប់មានលេខរៀង (index)

📚 ហេតុអ្វីត្រូវការ Arrays?

  1. រក្សាទិន្នន័យច្រើន: ដាក់ពិន្ទុ 100 ឬ 1000 ក្នុង variable តែមួយ
  2. គ្រប់គ្រងប្រភេទដូចគ្នា: int[], String[], double[]
  3. ចូលប្រើបានដោយ index: ទិន្នន័យនៅទី 0, 1, 2...
  4. Efficient: លឿន និង memory efficient

📦 Array vs Individual Variables

Individual Variables Array
int score1 = 90;
int score2 = 85;
int score3 = 92;
int score4 = 88;
int score5 = 95;
int[] scores = {90, 85, 92, 88, 95};
Variables ច្រើន, លំបាក Variable តែមួយ, ងាយគ្រប់គ្រង

🔢 Index (លេខរៀបរាប់)

Array ប្រើ index ដើម្បីចូលប្រើ element។ Index ចាប់ផ្តើមពី 0

int[] numbers = {10, 20, 30, 40, 50};
//               0   1   2   3   4   (index)

numbers[0]  →  10
numbers[1]  →  20
numbers[4]  →  50

🧱 Memory Layout

int[] arr = {10, 20, 30};

Memory:
+-------+-------+-------+
|  10   |  20   |  30   |  (Contiguous memory blocks)
+-------+-------+-------+
  [0]     [1]     [2]    (Index)

📊 ប្រភេទ Arrays

  • Primitive Arrays: int[], double[], boolean[]
  • Object Arrays: String[], Person[], Car[]
  • Multi-dimensional: int[][], int[][][]
Java Code
Click "Run" to execute the Java code

📦 Multi-dimensional Arrays

🔲 2D Array (Array 2 មាត្រ)

Array 2D គឺ array of arrays - ដូចជា តារាង (table/matrix)។

// Syntax
dataType[][] arrayName = new dataType[rows][cols];

// ឧទាហរណ៍
int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

📊 រូបភាព 2D Array

int[][] matrix = {
    {1, 2, 3},   // row 0
    {4, 5, 6},   // row 1
    {7, 8, 9}    // row 2
};

     Col0  Col1  Col2
Row0 [ 1    2    3 ]
Row1 [ 4    5    6 ]
Row2 [ 7    8    9 ]

🎯 Access 2D Elements

matrix[0][0]  →  1   // Row 0, Column 0
matrix[0][2]  →  3   // Row 0, Column 2
matrix[1][1]  →  5   // Row 1, Column 1
matrix[2][2]  →  9   // Row 2, Column 2

🔁 Loop through 2D Array

// ប្រើ Nested loop
for (int i = 0; i < matrix.length; i++) {         // rows
    for (int j = 0; j < matrix[i].length; j++) {  // columns
        System.out.print(matrix[i][j] + " ");
    }
    System.out.println();  // new line
}

// Output:
// 1 2 3
// 4 5 6
// 7 8 9

🎮 ឧទាហរណ៍ការប្រើ 2D Arrays

  • Game Board: Tic-tac-toe, Chess, Sudoku
  • Matrix Math: គណិតវិទ្យា, Linear algebra
  • Image Processing: Pixels (rows x columns)
  • Spreadsheet: Rows និង Columns
  • Seating Chart: ផែនទីកន្លែងអង្គុយ

🎲 3D Array និងបន្ថែម

// 3D Array - Cube
int[][][] cube = {
    {
        {1, 2},
        {3, 4}
    },
    {
        {5, 6},
        {7, 8}
    }
};

// Access: cube[layer][row][col]
cube[0][0][0]  →  1
cube[1][1][1]  →  8

⚠️ Common Array Issues

កំហុស មូលហេតុ ដំណោះស្រាយ
ArrayIndexOutOfBoundsException Index លើសពីទំហំ ពិនិត្យ index < length
NullPointerException Array ជា null បង្កើត array មុន
មិនអាចប្តូរទំហំ Fixed size ប្រើ ArrayList

💡 Array Tips

  • Length: array.length (មិនមែន () នៅក្រោយ)
  • Index: ចាប់ពី 0, បញ្ចប់នៅ length-1
  • Copy: ប្រើ Arrays.copyOf()
  • Sort: ប្រើ Arrays.sort()
  • Compare: ប្រើ Arrays.equals()
  • Dynamic: ប្រើ ArrayList ដើម្បីទំហំប្តូរបាន
Java Code
Click "Run" to execute the Java code