Mảng (Array) trong Java

Admin

15/09/2023

Share

mang array trong java 465057

Trong Java, mảng là một tập hợp các phần tử có cùng kiểu dữ liệu và được lưu trữ liên tiếp trong bộ nhớ. Đây là một cấu trúc dữ liệu cho phép lưu trữ và quản lý các phần tử tương tự. Mảng trong Java chỉ cho phép lưu trữ một số phần tử cố định.

Mảng trong Java là dựa trên chỉ mục (index), phần tử đầu tiên của mảng được lưu trữ tại chỉ mục 0.

Trong chương này, chúng ta sẽ tìm hiểu về cách khai báo và tạo mảng, cũng như xử lý các mảng trong Java bằng cách sử dụng chỉ mục. Bên cạnh đó, chúng ta cũng sẽ tìm hiểu về mảng một chiều và mảng đa chiều.

Để có cái nhìn sâu sắc hơn về các khái niệm được trình bày trong chương này, mời bạn xem loạt bài viết: Các ví dụ về Array trong ngôn ngữ lập trình Java.

Ưu điểm của mảng trong Java

  • Tối ưu hóa mã nguồn: từ đó chúng ta có thể thu thập và sắp xếp thông tin một cách dễ dàng.

  • Chúng ta có thể lấy bất kỳ dữ liệu nào từ bất kỳ vị trí chỉ mục nào bằng cách truy cập ngẫu nhiên.

  • Nhược điểm của mảng trong Java

  • Trong Java, để giải quyết vấn đề giới hạn kích cỡ của mảng, chúng ta sử dụng Collection Framework. Điều này cho phép chúng ta lưu trữ một số phần tử có kích cỡ cố định trong mảng mà không cần tăng kích cỡ tại thời điểm chạy.

  • Các loại mảng trong Java

    Có hai loại mảng trong Java, đó là:

    Xem nhiều:  Kinh nghiệm chọn mua iphone cũ tốt
  • Mảng một chiều.

  • Mảng nhiều chiều.

  • Quảng cáo.

    Khai báo mảng biến trong Java

    Để sử dụng một mảng trong chương trình, ta cần khai báo một biến để tham chiếu mảng và xác định kiểu mảng mà biến có thể tham chiếu. Dưới đây là cú pháp để khai báo một biến mảng:

    Kieu_du_lieu[] Bien_tham_chieu_mang;   // cach uu tien.
    hoac
    Kieu_du_lieu Bien_tham_chieu_mang[];  //  lam viec nhung khong la cach uu tien.
    

    Ghi chú: Đối với biến mảng, ưu tiên sử dụng cú pháp Kieu_du_lieu[] Bien_tham_chieu_mang. Còn cú pháp Kieu_du_lieu Bien_tham_chieu_mang[] xuất phát từ ngôn ngữ C/C++ và được chấp nhận trong Java.

    Chẳng hạn:

    Đoạn mã sau đây là một ví dụ minh họa cho cú pháp này.

    double[] BK49;         // cach uu tien.
    hoac
    double BK49[];         //  lam viec nhung khong la cach uu tien.
    

    Khởi tạo mảng trong Java

    Bạn có thể tạo một danh sách bằng cách sử dụng toán tử mới với cú pháp sau:.

    Bien_tham_chieu_mang = new Kieu_du_lieu[Kich_co_mang];
    

    Lệnh trên thực hiện hai nhiệm vụ sau:

  • Nó tạo ra một mảng bằng cách sử dụng từ khóa new và khai báo kiểu dữ liệu và kích thước của mảng.

  • Nó gán tham chiếu của mảng tạo mới tới biến Bien_tham_chieu_mang.

  • Một cách để tổ hợp khai báo biến mảng, tạo một mảng và gán tham chiếu của mảng tới biến là sử dụng một lệnh như sau:.

    Kieu_du_lieu[] Bien_tham_chieu_mang = new Kieu_du_lieu[Kich_co_mang];
    

    Bạn cũng có thể tạo các nhóm bằng cách sử dụng phương pháp sau:

    Kieu_du_lieu[] Bien_tham_chieu_mang = {giatri0, giatri1, ..., giatriN};
    

    Mảng có thể truy cập các phần tử thông qua chỉ mục. Chỉ mục của mảng được tính từ 0 đến (độ dài mảng – 1).

    Xem nhiều:  Lời dịch bài hát You raise me up

    Quảng cáo.

    Chẳng hạn:

    Sau khi khai báo biến mảng BK49, ta tạo một mảng mới có 10 phần tử kiểu double và gán tham chiếu tới BK49.

    double[] BK49 = new double[10];
    

    Mảng một chiều. trong Java

    Dưới đây là một ví dụ đơn giản về mảng một chiều. Trong ví dụ này, chúng ta sẽ thực hiện các bước như khai báo, khởi tạo và thao tác trên mảng.

    Khi thực hiện việc xử lý các phần tử của một mảng, chúng ta thường sử dụng entweder eine for-Schleife oder eine foreach-Schleife, vì tất cả các phần tử trong mảng đều có cùng kiểu và kích thước mảng đã được biết trước.

    class Array1{  
    public static void main(String args[]){  
    int a[]=new int[5];//phan khai bao va khoi tao  
    a[0]=10;//Phan khoi tao  
    a[1]=20;  
    a[2]=70;  
    a[3]=40;  
    a[4]=50;  
    //in mang  
    for(int i=0;i<a.length;i++)//length la thuoc tinh cua mang  
    System.out.println(a[i]);  
    }}  
    

    Chúng ta có thể định nghĩa, tạo và khởi tạo mảng trong ngôn ngữ Java bằng cách:

    int a[]={33,3,4,5};//khai bao, khoi tao va khoi tao   
    

    Bạn theo dõi ví dụ dưới đây để in ra mảng này.

    class Testarray1{  
    public static void main(String args[]){  
    int a[]={33,3,4,5};//khai bao, khoi tao va khoi tao 
    //in mang
    for(int i=0;i<a.length;i++)//length la thuoc tinh cua mang 
    System.out.println(a[i]);  
    }}  
    

    Truyền một mảng vào phương thức trong Java

    Bạn có thể truyền một mảng vào phương thức để tái sử dụng tính logic của phương thức đó cho bất kỳ mảng nào. Dưới đây là một ví dụ đơn giản để lấy số nhỏ nhất trong một mảng bằng cách sử dụng phương thức.

    class Testarray2{  
    static void min(int arr[]){  
    int min=arr[0];  
    for(int i=1;i<arr.length;i++)  
     if(min>arr[i])  
      min=arr[i];  
    System.out.println(min);  
    }  
    public static void main(String args[]){  
    int a[]={33,3,4,5};  
    min(a);//Truyen mang toi phuong thuc 
    }}  
    

    Vòng lặp foreach trong Java

    JDK 1.5 đưa ra một loại vòng lặp for mới, được gọi là foreach hoặc enhanced for, giúp bạn có thể duyệt qua các phần tử trong mảng một cách thuận tiện mà không cần sử dụng biến chỉ mục.

    Xem nhiều:  Cách xóa tất cả email cùng một lúc trên Android

    Chẳng hạn:

    Code sau hiển thị tất cả thành phần trong mảng BK49:.

    public class TestArray3 {
       public static void main(String[] args) {
          double[] BK49 = {1.9, 2.9, 3.4, 3.5};
          // In tat ca cac phan tu mang
          for (double element: BK49) {
             System.out.println(element);
          }
       }
    }
    

    Trả về một array từ một method trong Java

    Một phương thức cũng có thể trả về một mảng. Ví dụ, dưới đây là một phương thức in các phần tử trong mảng theo thứ tự ngược lại.

    package edu.doannhg.basic;
    public class ArrayDemo {
    	public static void hamDaoNguoc(int[] list) {
    		  int[] result = new int[list.length];
    		  // vong lap de dao nguoc mang
    		  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
    		    result[j] = list[i];
    		  }
    		  // vong lap foreach de hien thi cac phan tu trong mang dao nguoc
    		  for (int a: result) {
    		         System.out.print(a+ " ");
    		      }
    		}
    	public static void main(String [] args){
    		int [] arr = {9, 8, 7, 6, 5, 4, 3, 2, 1};
    		hamDaoNguoc(arr);
    	}
    }
    

    Mảng hai chiều và nhiều chiều trong Java

    Trong trường hợp này, dữ liệu được lưu trữ theo hàng và cột dựa trên chỉ mục. Để khai báo một mảng đa chiều trong Java, ta sử dụng cú pháp sau:

    Kieu_du_lieu[][] Bien_tham_chieu_mang; (hoac)  
    Kieu_du_lieu [][]Bien_tham_chieu_mang; (hoac)  
    Kieu_du_lieu Bien_tham_chieu_mang[][]; (hoac)  
    Kieu_du_lieu []Bien_tham_chieu_mang[];   
    

    Bạn có thể tạo một mảng nhiều chiều trong Java, tương tự như sau:.

    int[][] arr=new int[3][3];//3 hang va 3 cot  
    

    Ví dụ về tạo mảng đa chiều trong Java.

    arr[0][0]=1;  
    arr[0][1]=2;  
    arr[0][2]=3;  
    arr[1][0]=4;  
    arr[1][1]=5;  
    arr[1][2]=6;  
    arr[2][0]=7;  
    arr[2][1]=8;  
    arr[2][2]=9;  
    

    Ví dụ đơn giản sau sẽ khai báo, tạo ra, khởi tạo và in ra một mảng hai chiều.

    class Testarray3{  
    public static void main(String args[]){  
    //khai bao va khoi tao mang 2 chieu 
    int arr[][]={{1,2,3},{2,4,5},{4,4,5}};  
    //in mang hai chieu  
    for(int i=0;i<3;i++){  
     for(int j=0;j<3;j++){  
       System.out.print(arr[i][j]+" ");  
     }  
     System.out.println();  
    }  
    }}  
    

    Tên lớp của mảng trong Java được gọi là “Array”.

    Trong ngôn ngữ lập trình Java, mảng được coi là một đối tượng. Để lấy thông tin về lớp mà một đối tượng mảng thuộc về, chúng ta có thể sử dụng phương thức getClass() và getName().

    class Testarray4{  
    public static void main(String args[]){  
    int arr[]={4,4,5};  
    Class c=arr.getClass();  
    String name=c.getName();  
    System.out.println(name);  
    }}   
    

    Sao chép một array trong Java

    Bạn có thể sao chép một mảng từ một mảng khác bằng cách sử dụng phương thức arraycopy của lớp System. Cú pháp của phương thức arraycopy như sau:

    public static void arraycopy(  
    Object src, int srcPos,Object dest, int destPos, int length  
    )   
    

    Bạn theo dõi ví dụ của phương thức arraycopy trong Java để hiểu sâu hơn về cú pháp trên.

    class TestArrayCopyDemo {  
        public static void main(String[] args) {  
            char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e',  
                    'i', 'n', 'a', 't', 'e', 'd' };  
            char[] copyTo = new char[7];  
            System.arraycopy(copyFrom, 2, copyTo, 0, 7);  
            System.out.println(new String(copyTo));  
        }  
    }   
    

    Tính tổng hai ma trận trong Java

    Ví dụ đơn giản sau sẽ thực hiện phép cộng hai ma trận trong ngôn ngữ lập trình Java.

    class Testarray5{  
    public static void main(String args[]){  
    //tao hai ma tran  
    int a[][]={{1,3,4},{3,4,5}};  
    int b[][]={{1,3,4},{3,4,5}};  
    //tao ma tran khac de luu giu ket qua phep cong hai ma tran 
    int c[][]=new int[2][3];  
    //cong va in tong hai ma tran 
    for(int i=0;i<2;i++){  
    for(int j=0;j<3;j++){  
    c[i][j]=a[i][j]+b[i][j];  
    System.out.print(c[i][j]+" ");  
    }  
    System.out.println();//new line  
    }  
    }}   
    

    Tổng quan về Lớp Array trong Java

    Java.Util.Arrays là một lớp có chứa nhiều phương thức static đa dạng để thực hiện việc xếp thứ tự và tìm kiếm các mảng, so sánh các mảng và điền các phần tử vào mảng.

    Xem nhiều:  Tải MP3 từ YouTube
    STT Phương thức và Miêu tả
    1 public static int binarySearch(Object[] a, Object key)

    Tìm kiếm mảng của Object (byte, int, double, …) đã cho với giá trị đã xác định bởi sử dụng thuật toán tìm kiếm nhị phân. Mảng này phải được xếp thứ tự trước khi gọi phương thức này. Nó trả về chỉ mục của từ khóa tìm kiếm, nếu nó nằm trong danh sách, nếu không thì, bằng (-(điểm chèn + 1)).

    2 public static boolean equals(long[] a, long[] a2)

    Trả về true nếu hai mảng long đã cho là cân bằng nhau. Hai mảng này được cho là cân bằng nếu cả hai mảng chứa cùng số lượng phần tử, và tất cả các cặp phần tử tương ứng của hai mảng là cân bằng. Phương thức tương tự có thể được sử dụng bởi tất cả kiểu dữ liệu gốc khác (byte, short, int, …).

    3 public static void fill(int[] a, int val)

    Gán giá trị int đã cho tới mỗi phần tử của mảng int đã cho. Phương thức tương tự có thể được sử dụng bởi tất cả kiểu dữ liệu gốc khác (byte, short, int, …).

    4 public static void sort(Object[] a)

    Xếp thứ tự mảng các đối tượng đã cho theo thứ tự tăng dần, theo thứ tự tự nhiên của các phần tử. Phương thức tương tự có thể được sử dụng bởi tất cả kiểu dữ liệu gốc khác (byte, short, int, …).

    Bạn có thể tải ngay ứng dụng VietJack trên điện thoại của mình để sử dụng miễn phí các tính năng như giải bài tập SGK, SBT, soạn văn, văn mẫu, thi online và xem bài giảng. Ứng dụng này có sẵn trên cả hệ điều hành Android và iOS.

    Xem nhiều:  Soạn bài Ngôi kể trong văn tự sự ngắn nhất | Soạn văn 6

    Lớp Array trong Java là một lớp được sử dụng để làm việc với mảng, cung cấp các phương thức và thuộc tính để thao tác và quản lý mảng một cách dễ dàng và hiệu quả. Lớp Array cung cấp các phương thức để khởi tạo mảng, truy cập vào các phần tử trong mảng, thay đổi giá trị của các phần tử, tính toán kích thước của mảng và sao chép mảng. Sử dụng lớp Array, chúng ta có thể thực hiện các thao tác như tìm kiếm, sắp xếp, thêm và x

    Lớp Array trong Java là một lớp được sử dụng để làm việc với mảng, cung cấp các phương thức và thuộc tính để thao tác và quản lý mảng một cách dễ dàng và hiệu quả. Lớp Array cung cấp các phương thức để khởi tạo mảng, truy cập vào các phần tử trong mảng, thay đổi giá trị của các phần tử, tính toán kích thước của mảng và sao chép mảng. Sử dụng lớp Array, chúng ta có thể thực hiện các thao tác như tìm kiếm, sắp xếp, thêm và x

    Theo theo dõi chúng tôi miễn phí trên các mạng xã hội Facebook và YouTube.

    Bạn có thể tận hưởng khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG hết sức thú vị. Đây là một cơ hội tuyệt vời để vượt qua các dự án trên trường và thực tập Java. Với mức giá chỉ 300K, khóa học này thực sự đáng để bạn đầu tư. Đặc biệt, chúng tôi đã tạo điều kiện ưu đãi cho sinh viên để mua khóa học này.

    Khóa học này bao gồm 16 chương và 100 video học cực kỳ thú vị. Bạn có thể học trực tiếp tại trang web https://www.Udemy.Com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/. Nếu bạn muốn mua khóa học, hãy liên hệ trực tiếp với a Tuyền, một cựu sinh viên của trường Bách Khoa K53. Bạn có thể inbox a Tuyền qua trang cá nhân https://www.Facebook.Com/tuyen.Vietjack.

    Các bài hướng dẫn của chúng tôi dựa phần nào vào nguồn tài liệu từ: Tutorialspoint.Com.

    Theo dõi trang cá nhân của Nguyễn Thanh Tuyền trên Facebook tại https://www.Facebook.Com/tuyen.Vietjack để cập nhật những bài viết mới nhất về Java, C, C++, Javascript, HTML, Python, Database, Mobile… Từ chúng tôi.