Thứ Ba, 3 tháng 7, 2018

Java - Mảng

Học lập trình 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ự 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 bộ sưu tập dữ liệu, nhưng thường hữu ích hơn khi nghĩ về một mảng như 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ố sử dụng [0], số [1] và ..., số [99] để biểu diễn các biến riêng lẻ.

Hướng dẫn này giới thiệu cách khai báo các biến mảng, tạo mảng và xử lý các mảng bằng cách sử dụng các biến được lập chỉ mục.

Khai báo các 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 kiểu mảng mà biến có thể tham chiếu. Đây là cú pháp để khai báo một biến mảng -

Cú pháp

dataType[] arrayRefVar;   // preferred way.
or
dataType arrayRefVar[];  // works but not preferred way.

Lưu ý - Kiểu dữ liệu styleType [] arrayRefVar được ưu tiên. Kiểu dataType arrayRefVar [] xuất phát từ ngôn ngữ C / C ++ và được chấp nhận trong Java để chứa các lập trình viên C / C ++.

Thí dụ

Đoạn mã sau là ví dụ về cú pháp này
double[] myList;   // preferred way.
or
double myList[];   // works but not preferred way.

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];

Câu nói trên làm hai điều 

Nó tạo ra một mảng bằng cách sử dụng new dataType [arraySize].

Nó gán tham chiếu của mảng mới được tạo cho mảng arrayRefVar.

Khai báo một biến mảng, tạo một mảng và gán tham chiếu của mảng cho biến có thể được kết hợp trong một câu lệnh, như hình dưới đây 

dataType[] arrayRefVar = new dataType[arraySize];
Hoặc bạn có thể tạo mảng như sau:
dataType[] arrayRefVar = {value0, value1, ..., valuek};

Các phần tử mảng được truy cập thông qua chỉ mục . Chỉ số mảng là 0 dựa trên; nghĩa là, chúng bắt đầu từ 0 đến arrayRefVar.length-1 .

Thí dụ

Tuyên bố sau tuyên bố một biến mảng, myList, tạo một mảng gồm 10 phần tử của kiểu kép và gán tham chiếu của nó cho myList 
double[] myList = new double[10];
Hình ảnh sau đại diện cho mảng myList. Ở đây, myList chứa mười giá trị kép và các chỉ số là từ 0 đến 9.

ảnh minh họa

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 có cùng loại và kích thước của mảng được biết.

Thí dụ

Dưới đây là một ví dụ hoàn chỉnh cho thấy cách tạo, khởi tạo và xử lý các mảng -
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);  
   }
}
Điều này sẽ tạo ra kết quả sau 

Đầu ra

1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5

Các vòng lặp foreach

JDK 1.5 giới thiệu một vòng lặp mới được gọi là vòng lặp foreach hoặc được tăng cường cho vòng lặp, cho phép bạn duyệt qua toàn bộ chuỗi tuần tự mà không cần sử dụng biến chỉ mục.

Thí dụ

Đoạn mã sau hiển thị tất cả các phần tử trong mảng myList -
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 (double element: myList) {
         System.out.println(element);
      }
   }
}
Điều này sẽ tạo ra kết quả sau

Đầu ra

1.9
2.9
3.4
3.5

Chuyển mảng sang phương thức

Cũng 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 tới 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

Thí dụ

public static void printArray(int[] array) {
   for (int i = 0; i < array.length; i++) {
      System.out.print(array[i] + " ");
   }
}

Bạn có thể gọi nó bằng cách truyền một mảng. Ví dụ, câu lệnh sau gọi phương thức printArray để hiển thị 3, 1, 2, 6, 4 và 2

Thí dụ

printArray(new int[]{3, 1, 2, 6, 4, 2});
Trả về một mảng từ một 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 trả về một mảng là sự đảo ngược của mảng khác

Thí 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;
}

Lớp Mảng

Lớp java.util.Arrays chứa các phương thức tĩnh khác nhau để sắp xếp và tìm kiếm các mảng, so sánh các mảng và làm đầy các phần tử mảng. Các phương thức này bị quá tải cho tất cả các kiểu nguyên thủy.

Sr.No.Phương thức & Mô tả
1public static int binarySearch (Object [] a, Khóa đối tượng)

Tìm kiếm mảng được chỉ định của đối tượng (Byte, Int, double, etc.) 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; nếu không, nó sẽ trả về (- (điểm chèn + 1)).
2công thức tĩnh boolean bằng (dài [] a, dài [] a2)

Trả về true nếu hai mảng dài được chỉ đị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 kiểu dữ liệu nguyên thủy khác (Byte, short, Int, v.v.)
3công khai điền void tĩnh (int [] a, int val)

Gán giá trị int đã chỉ định cho từng phần tử của mảng int được chỉ định. Phương pháp tương tự có thể được sử dụng bởi tất cả các kiểu dữ liệu nguyên thủy khác (Byte, short, Int, v.v.)
4loại void tĩnh công cộng (Object [] a)

Sắp xếp mảng đối tượng được chỉ định thành thứ tự tăng dần, theo thứ tự tự nhiên của các phần tử của nó. Phương pháp tương tự có thể được sử dụng bởi tất cả các kiểu dữ liệu nguyên thủy khác (Byte, short, Int, v.v.)

Không có nhận xét nào:

Đăng nhận xét

Lập trình Java - Ngoại lệ

Một ngoại lệ (hoặc sự kiện đặc biệt) là một vấn đề phát sinh trong quá trình thực hiện chương trình. Khi xảy ra Ngoại lệ , luồng bình thường...