Mảng trong Java | How Kteam

Dẫn nhập

Ở những bài về BIẾN và KIỂU DỮ LIỆU  ta đã học cách lưu trữ các giá trị vào những biến đơn lẻ. Tuy nhiên, có những lúc ta muốn lưu nhiều giá trị chung kiểu dữ liệu vào một biến nhất định. Ta gọi đó làm mảng, trong bài này Kteam sẽ giải thích Công dụng về mảng.

Nội dung

Để đọc hiểu bài này, tốt nhất những bạn nên có kiến thức và kỹ năng cơ bản về những phần sau :

Bài này chúng ta sẽ tìm hiểu những vấn đề sau:

Bạn đang đọc: Mảng trong Java | How Kteam

  • Mảng là gì? Ưu nhược của mảng
  • Cấu trúc của mảng

Mảng là gì? Ưu nhược của mảng

Mảng là gì?

Mảng là tập hợp các đối tượng có cùng kiểu dữ liệu và được lưu trữ gần nhau trong bộ nhớ. Mỗi đối tượng hay được gọi là phần tử, các phần từ được phân biệt bằng vị trí (hay chỉ số phần tử), được bắt đầu từ vị trí 0.

Mảng trong Java, java cơ bản, java oop, java hướng đối tượng

Việc sử dụng mảng mang ý nghĩa lưu những giá trị liên quan với nhau. Ví dụ như lưu điểm kiểm tra của 30 học sinh trong lớp, như vậy ta muốn lấy điểm của học sinh nào đó thì chỉ cần viết vị trí của học sinh đó trong danh sách.

Ưu nhược của mảng

Ưu điểm:

  • Tối ưu code: Gom các phần tử liên quan vào chung một với nhau giúp code gọn gàng hơn.
  • Có thể truy cập ngấu nhiên: Do các vị trí ô lưu trữ liên tiếp ta có thể truy cập ngấu nhiên bằng chỉ số phần tử dễ dàng và nhanh chóng.
  • Dễ thao tác, quản lý và nâng cấp: Như muốn thay đổi các giá trị theo 1 quy luật thì ta sẽ tận dụng sử dụng những vòng lặp lập trình.

Nhược điểm:

  • Giới hạn kích thước: Khi sử dụng mảng ta phải khai báo kích thước lưu trữ của mảng và không thể thay đổi kích thước trong lúc chạy.
  • Vùng lưu trữ phải liên tiếp: Đây cũng là vừa ưu vừa nhược điểm. Vì yêu cầu các ô nhớ liên tiếp nên phải tốn không gian bộ nhớ, hoặc đủ ô nhớ nhớ nhưng các ô nhớ không tiếp nên không thể khai báo được.

Cấu trúc của mảng

Mảng có hai loại : Mảng một chiều và mảng đa chiều

Mảng 1 chiều

Cú pháp khai báo :

[] ;

Cú pháp cấp phát bộ nhớ để tạo mảng:

= new [kích cỡ mảng];

Cú pháp rút gọn hơn :

[] = new [kích cỡ mảng];

Ví dụ: Khai báo mảng có 3 phần tử, đưa giá trị. Thử in mảng a và các giá trị mảng a

public class HelloWorld{

     public static void main(String []args){
        int[] a;
        a = new int[3];
        a[0] = 5;
        a[1] = 2;
        a[2] = 1;
        System.out.println(a);
        for (int i=0; i

Mảng trong Java, java cơ bản, java oop, java hướng đối tượng

Ở ví dụ trên. Kteam sử dụng a.length là một thuộc tính của mảng giúp ta có thể biết kích cỡ của mảng, nó giúp ta sử dụng vòng lặp for.

Ta thấy khi ta thử in ra mảng a thì nó cho kết quả [I@2a139a55. Vì mảng không phải kiểu dữ liệu nguyên thủy (ở bài kiểu dữ liệu Kteam đã giải thích), mảng là kiểu dữ liệu tham chiếu. Ý nghĩa kết quả như sau: [I có nghĩa đây là mảng thuộc kiểu int (tượng trưng bằng chữ I), @2a139a55 thì tùy thuộc JVM đưa ra, nhưng thường là địa chỉ lưu trữ đối tượng.

Cú pháp khởi tạo cho mảng :

[] = {,…}

Ví dụ:

public class HelloWorld{

     public static void main(String []args){
        char[] a = {'H', 'o', 'w', 'K','t','e','a','m'};
        System.out.print(a);
     }
}

Mảng trong Java, java cơ bản, java oop, java hướng đối tượng

Riêng kiểu dữ liệu char đặc biệt hơn là có thể in ra toàn bộ giá trị bằng cách print trực tiếp mảng.

Mảng đa chiều

Cũng như mảng một chiều dùng để lưu các giá trị có nét tương đồng. Thì mảng đa chiều chỉ là tăng số chiều lưu trữ nhiều chiều hơn, hay còn gọi là ma trận. Thường thường ta hay sử dụng mảng 2 chiều. Kteam sẽ nói 2 chiều là chính cho các bạn dễ hình dung. Trong ma trận 2 chiều, ta hay gọi chiều thứ 1 là hàng, còn chiều thứ 2 là cột.

Mảng trong Java, java cơ bản, java oop, java hướng đối tượng

Cú pháp khai báo :

[][] = new [kích cỡ hàng] [kích cỡ cột];

Cú pháp khởi tạo cho mảng:

[][] = {{các giá trị hàng 1}, {các giá trị hàng 2},… {các giá trị hàng n}}

Ví dụ: Tạo ma trận 3 hàng 2 cột và in các giá trị ra theo hàng và cột.

public class HelloWorld{

     public static void main(String []args){
        int[][] a= {{1,2,3},{4,5,6},{7,8,9}};
        for (int i=0; i<3; i++){
            for(int j=0; j<3; j++){
                System.out.print(a[i][j]+" ");
            }
            System.out.println();
        }
     }
}

Mảng trong Java, java cơ bản, java oop, java hướng đối tượng

Lưu ý

Thực ra trong Java có thể khai báo mảng theo 2 cách sau: int[] a hoặc int a[]. Chức năng đều như nhau, nên các bạn có thể cách nào tùy ý. Tuy nhiên, do người ta thường khuyên viết cách đầu hơn nên Kteam quyết định viết bài theo cách đó.

Kết

Như vậy tất cả chúng ta đã khám phá mảng trong Java

Ở bài sau, Kteam sẽ giới thiệu đến bạn về VÒNG LẶP FOR-EACH JAVA

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

Thảo luận

Nếu bạn có bất kể khó khăn vất vả hay vướng mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI và ĐÁP trên thư viện Howkteam. com để nhận được sự tương hỗ từ hội đồng .