Tuesday, March 10, 2020

Java cơ bản - Array trong java

Array trong java

Java cung cấp một cấu trúc dữ liệu, mảng, lưu trữ một bộ sưu tập tuần tự có kích thước cố định của các phần tử cùng loại. Một mảng được sử dụng để lưu trữ một tập hợp dữ liệu, nhưng thường hữu ích hơn khi nghĩ về một mảng là một tập hợp các biến cùng loại.

Thay vì khai báo các biến riêng lẻ, chẳng hạn như number0, number1, ... và number99, bạn khai báo một biến mảng như số và sử dụng số [0], số [1] và ..., số [99] để biểu thị các biến riêng lẻ.
Java cơ bản - Array trong java

Hướng dẫn này giới thiệu cách khai báo biến mảng, tạo mảng và xử lý mảng bằng cách sử dụng biến được lập chỉ mục.
Khai báo biến mảng
Để sử dụng một mảng trong một chương trình, bạn phải khai báo một biến để tham chiếu mảng và bạn phải chỉ định loại mảng mà biến có thể tham chiếu. Đây là cú pháp để khai báo một biến mảng
dataType[] arrayRefVar;
or
dataType arrayRefVar[];
Ví dụ:
double [] mylist
or double mylist[]
Tạo mảng
Bạn có thể tạo một mảng bằng cách sử dụng toán tử mới với cú pháp sau

  • Cú pháp: arrayRefVar = new dataType[arraySize];

ví dụ:
double[] myList = new double[10];
Xử lý mảng
Khi xử lý các phần tử mảng, chúng ta thường sử dụng vòng lặp for hoặc vòng lặp foreach vì tất cả các phần tử trong một mảng đều cùng loại và kích thước của mảng được biết đến
public class TestArray {
   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};
      // Print all the array elements
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
   
      // Summing all elements
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
   
      // Finding the largest element
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);
   }
}
Kết quả
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5

Vòng lặp foreach trong array

Từ jdk 1.5 trở đi bạn có thể sử dụng vòng lặp foreach để thực hiện và xử lý các item trong mảng
ví dụ sử dụng foreach in array
public class TestArray {
   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};
      for (double element: myList) {
         System.out.println(element);
      }
   }
}
Kết quả của chương trình:
1.9
2.9
3.4
3.5
Truyền mảng của phương thức trong java
Giống như bạn có thể truyền các giá trị kiểu nguyên thủy cho các phương thức, bạn cũng có thể truyền các mảng cho các phương thức. Ví dụ, phương thức sau hiển thị các phần tử trong một mảng int.
Ví dụ:
public static void printArray(int[] array) {
   for (int i = 0; i < array.length; i++) {
      System.out.print(array[i] + " ");
   }
}
printArray(new int[]{3, 1, 2, 6, 4, 2});

Trả về một mảng trong phương thức
Một phương thức cũng có thể trả về một mảng. Ví dụ, phương thức sau đây trả về một mảng là sự đảo ngược của một mảng khác
Ví dụ:
public static int[] reverse(int[] list) {
   int[] result = new int[list.length];
   for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
      result[j] = list[i];
   }
   return result;
}
Những method trong array
public static int binarySearch(Object[] a, Object key)
Tìm kiếm mảng đối tượng được chỉ định (Byte, Int, double, v.v.) cho giá trị được chỉ định bằng thuật toán tìm kiếm nhị phân. Mảng phải được sắp xếp trước khi thực hiện cuộc gọi này. Điều này trả về chỉ mục của khóa tìm kiếm, nếu nó được chứa trong danh sách; mặt khác, nó trả về (- (điểm chèn + 1)).

public static boolean equals(long[] a, long[] a2)
Trả về true nếu hai mảng dài xác định bằng nhau. Hai mảng được coi là bằng nhau nếu cả hai mảng chứa cùng một số phần tử và tất cả các cặp phần tử tương ứng trong hai mảng đều bằng nhau. Điều này trả về true nếu hai mảng bằng nhau. Phương thức tương tự có thể được sử dụng bởi tất cả các loại dữ liệu nguyên thủy khác (Byte, short, Int, v.v.)
public static void fill(int[] a, int val)
Gán giá trị int được chỉ định cho từng phần tử của mảng int được chỉ định. Phương thức tương tự có thể được sử dụng bởi tất cả các loại dữ liệu nguyên thủy khác (Byte, short, Int, v.v.)
public static void sort(Object[] a)
Sắp xếp mảng các đối tượng được chỉ định theo thứ tự tăng dần, theo thứ tự tự nhiên của các phần tử của nó. Phương thức tương tự có thể được sử dụng bởi tất cả các loại dữ liệu nguyên thủy khác (Byte, short, Int, v.v.)

No comments:

Post a Comment