Cách khai báo mảng nào sau đây là dụng Java

Cú pháp, cách khai báo nhập xuất mảng một chiều trong Java (array) . Thao tác với mảng ứng dụng vào giải các bài tập liên quan trong thực tế!

Giới thiệu về mảng trong Java

Định nghĩa: Mảng là tập hợp các phần tử có cùng kiểu dữ liệu, có vị trí liên tiếp nhau trong các ô nhớ. Lập trình viên sử dụng mảng để khai báo và lưu các thông tin cần thiết để giải quyết các bài toán trong thực tế.
Mảng có thể là mảng một chiều, mảng 2 chiều.

Thao tác với mảng là nội dung quan trọng trong mỗi ngôn ngữ lập trình đều rất quan trọng. Đây dường như là một cấu trúc chính và được sử dụng nhiều nhất. Nếu không có mảng, coi như bạn đã bỏ qua ngôn ngữ lập trình.

Giống như mảng trong ngôn ngữ C/C++, mảng trong Java có thể lưu trữ số nguyên, số thực hoặc các kiểu dữ liệu khác do bạn tự định nghĩa. Ví dụ như mảng các đối tượng sinh viên, lớp người . . .

Cú pháp khai báo mảng một chiều

Khi khai báo mảng một chiều Java, bạn không cần phải cấp bộ nhớ trước, chỉ cần thực hiện theo cú pháp:

<kiểu dữ liệu> + <tên mảng> + [];

Sau đó khi xác định được số lượng phần tử cần phải lưu trữ thì bạn mới cấp phát bộ nhớ ( giúp đỡ tốn bộ nhớ). Cú pháp của nỏ giống như khai báo một đối tượng.

<tên biến> = new <kiểu dữ liệu>[n];

trong đó n là số phần tử của mảng.

Ví dụ:

int a[]; // khai báo mảng a
a = new int[100]; // khai háo mảng a có 100 ô nhớ
// Hoặc bạn cũng có thể khai báo trên cùng một dòng
double b[] = new double[10]; // Khai báo mảng b kiểu double có 10 ô nhớ

Code nhập xuất mảng Java

Nhập mảng cũng giống như trong các ngôn ngữ lập trình khác. Chắc chắn bạn phải dùng một vòng lặp for chạy từ vị trí đầu, đến cuối mảng. Sau đó nhập dữ liệu từ bàn phím cho mỗi phần tử. Nếu bạn chưa biết cách nhập sử dụng lớp Scanner thì có thể xem tại đây.

Cách xuất mảng thì đơn giản hơn. Bạn cũng chạy một vòng lặp for, sau đó in giá trị ra màn hình.

Cụ thể bạn tham khảo code của mình dưới đây nhé!

import java.util.Scanner;
public class Array_io {
public static void main(String[] args) {
int a[]= new int[10]; // Khai báo mảng a gồm 10 phần tử số nguyên
Scanner sc =new Scanner(System.in); // Khai báo đối tượng sc lớp Scanner
System.out.println(“Nhap 10 phan tu cua mang: “);
for(int i=0;i<10;i++) {
a[i]= sc.nextInt(); // Gán giá trị cho từng phần tử trong mảng
}
System.out.println(“Mang vua nhap: “);
for(int i=0;i<10;i++) // Dùng vòng lặp for, in các phần tử ra màn hình
System.out.print(“\t”+a[i]);
}
}

Ngoài ra, nếu bạn cần viết riêng thành phương thức nhập, xuất. Thì chỉ cần tạo và viết nó ở trên hàm main là được!
nếu cần bài toán nhập n >= 2 và n<100 thì bạn cho vòng lặp while vào là được.

Ví dụ:

import java.util.Scanner;
public class Array_io {
private int b[] = new int[10];
// Hàm nhập mảng
public void nhapMang(){
Scanner sc =new Scanner(System.in);
System.out.println(“Nhap 10 phan tu cua mang: “);
for(int i=0;i<10;i++) {
b[i]= sc.nextInt();
}
}
// Hàm xuất mảng
public void xuatMang(){
System.out.println(“Mang vua nhap: “);
for(int i=0;i<10;i++)
System.out.print(“\t”+a[i]);
}
public static void main(String[] args) {
Array_io vidu = new Array_io();
vidu.nhapMang();
vidu.xuatMang();
}
}

Kết quả khi chạy một trong hai chương trình bên trên:

Từ đây, bạn có thể thực hiện các bài toán như tính tổng các phần tử, giải quyết bài toán nào đó ghi gặp phải. Nội dung này xuyên suốt quả trình học tập sau này của bạn.

Bài viết dựa trên kinh nghiệm cá nhân của mình. Nếu bạn có gì thắc mắc để lại comment xuống dưới bài viết này nhé!

Nguồn: kỷ niệm học lập trình Java của tui!

Mảng trong java là cấu trúc dữ liệu được sử dụng rộng rãi nhất để lưu trữ nhiều giá trị của cùng một kiểu dữ liệu theo thứ tự tuần tự. Mảng có độ dài cố định và chỉ số bắt đầu từ 0 đến n-1 trong đó n là độ dài của mảng. Chúng ta có thể sử dụng lớp mảng trong Java để lưu trữ bất kỳ loại giá trị nào như Chuỗi, số nguyên, ký tự, byte và thậm chí cả các đối tượng do người dùng định nghĩa. Chúng ta sẽ học cách khởi tạo mảng trong Java?

Dưới đây là biểu diễn dạng sơ đồ của mảng một chiều các số nguyên có 11 phần tử.

Các tính năng của mảng Java

  • Mảng có kích thước cố định và không thể thay đổi
  • Vì mảng dựa trên chỉ mục, nên dễ dàng truy cập các phần tử ngẫu nhiên
  • Cấp phát bộ nhớ liên tục cho các phần tử mảng.
  • Có thể lưu trữ cả hai dữ liệu nguyên thủy và không nguyên thủy giá trị

Cách khai báo một Mảng trong Java?

Khai báo mảng Java

Một mảng có thể được khai báo theo các cách dưới đây. Khai báo mảng có 2 phần, đầu tiên là kiểu dữ liệu của các phần tử mà chúng ta cần lưu trữ trong một mảng (như int, String, v.v.) và tiếp theo là tên mảng. Dấu ngoặc [] biểu thị rằng nó là một mảng. Khi chúng ta khai báo một mảng, nó chỉ cho trình biên dịch biết rằng biến đó là một mảng và không thực sự tạo ra một mảng.

datatype [] arrayName; (hoặc là)

datatype [] arrayName; (hoặc là)

kiểu dữ liệu arrayName []; -> Thông thường chúng tôi không thích sử dụng phương pháp này mặc dù nó hợp lệ.

Ví dụ về khai báo mảng

int[] arrNumbers;
String[] arrNames;
float[] arrValues;
boolean[] arrBoolean;
char[] arrLetters;
byte[] arrBytes;
double[] arrWeight;

Cách tạo Mảng trong Java?

Mảng chuỗi trong Java

Chúng tôi tạo một mảng bằng cách sử dụng mới nhà điều hành. Trong trường hợp này, chúng tôi chỉ định kích thước của một mảng trong [] biểu thị lượng bộ nhớ cần thiết để lưu trữ biến mảng.

arrname = new datatype [size];

Chúng tôi cũng có thể khai báo và tạo mảng trong một tuyên bố duy nhất như dưới đây. Câu lệnh đầu tiên tạo một mảng số nguyên có tên là các số có kích thước 5. Câu lệnh thứ hai tạo một mảng chuỗi có tên là các tên có kích thước 2

int[] arrNumbers = new int[5];
String[] arrNames = new String[2];

Làm thế nào để khởi tạo mảng trong Java?

Làm thế nào để khởi tạo một mảng?

Khởi tạo hoặc khởi tạo mảng có nghĩa là gán giá trị cho một mảng dựa trên kích thước mảng. Chúng ta cũng có thể tạo và khởi tạo (khởi tạo) một mảng cùng nhau (Tham khảo Phương pháp 1 bên dưới). Trong trường hợp này, số phần tử biểu thị độ dài hoặc kích thước của một mảng. Trong Phương pháp 2, chúng tôi đang gán các giá trị t0 riêng biệt cho từng phần tử. Vì chỉ số mảng bắt đầu bằng 0 và kích thước mảng ở đây là 3, phần tử thứ 3 chiếm vị trí thứ 2 là n-1 trong đó n là kích thước của mảng.

//Method 1
int[] arrNumbers = {1,2,3};
//Method 2
int[] arrNumbers = new int[3];
arrNumbers[0] = 1;
arrNumbers[1] = 2;
arrNumbers[2] = 3;

Truy cập các phần tử của mảng trong Java

Chúng tôi truy cập các phần tử của mảng bằng cách sử dụng giá trị chỉ mục của nó. Nói chung, chúng tôi sử dụng Trong vòng lặp hoặc Cho mỗi vòng lặp để truy cập các phần tử của mảng vì tất cả các phần tử đều cùng kiểu và có kích thước cố định.

Ví dụ: Tạo, Khởi tạo và Truy cập các phần tử Mảng

Ở đây, chúng tôi đang tạo và khởi tạo một mảng các chuỗi trong một chuỗi câu lệnh và truy cập từng phần tử bằng vòng lặp for

public class ArrayDemo1 {
public static void main(String[] args) {
String[] arrMonths = {“May”,”June”,”July”};
System.out.println(“Length of array is: ” + arrMonths.length);
for(int i=0;i<arrMonths.length;i++)
{
System.out.println(arrMonths[i]);
}
}
}
Output:
Length of array is: 3
May
June
July

Ví dụ: Một phương pháp khác để khởi tạo mảng và truy cập các phần tử của mảng

Trong ví dụ dưới đây, đầu tiên chúng ta khai báo và tạo một mảng các số nguyên, sau đó gán giá trị cho các phần tử mảng riêng lẻ. Ở đây, chúng tôi đang sử dụng cho mỗi vòng lặp để truy cập các phần tử của mảng.

public class ArrayDemo2 {
public static void main(String[] args) {
int[] numbers = new int[5];
numbers[0] = 100;
numbers[1] = 101;
numbers[2] = 103;
numbers[3] = 104;
numbers[4] = 105;
for(int i: numbers)
{
System.out.println(i);
}
}
}
Output:
100
101
103
104
105

các loại mảng trong Java

Có 2 loại mảng trong Java:

  • Mảng một chiều – Mảng này chỉ chứa 1 hàng và 1 cột. Tất cả các ví dụ trên đều thuộc về mảng một chiều
  • Mảng đa chiều – Mảng này chứa nhiều hàng và nhiều cột. Nói cách khác, nó là một mảng các mảng mà tất cả các hàng đều có số cột. Vd: ma trận 2 * 2
  • Mảng có răng cưa – Mỗi hàng chứa một số cột khác nhau

Mảng đa chiều trong java

Mảng nhiều chiều có thể có nhiều hàng và nhiều cột. Chỉ số trong [] đầu tiên đại diện cho các hàng và [] thứ hai đại diện cho các cột.

Vd: int [] [] a = new int [2] [3]

Điều này có nghĩa là mảng chứa 2 hàng và 3 cột. Dưới đây là biểu diễn dạng sơ đồ của một mảng đa chiều

Ví dụ về cách tạo mảng chuỗi nhiều chiều

Ví dụ dưới đây cho thấy cách tạo, khai báo và truy cập các phần tử mảng đa chiều. Tại đây, chúng tôi trực tiếp truy cập phần tử mảng bằng cách sử dụng chỉ mục hàng và cột.

public class ArrayMulti {
public static void main(String[] args) {
String[][] arrNames = {{“John”,”Jacob”},{“Thomas”,”Martin”}};
System.out.println(arrNames[0][0] + ” ” + arrNames[0][1]);
System.out.println(arrNames[1][0] + ” ” + arrNames[1][1]);
}
}
Output:
John Jacob 
Thomas Martin

Ví dụ về mảng số nguyên 2D

Ở đây, chúng ta đang tạo một mảng số nguyên 2 chiều có 2 hàng và 3 cột. Chúng tôi gán các giá trị cho các phần tử mảng này bên trong vòng lặp for. Vòng lặp for đầu tiên biểu thị các hàng và vòng lặp for thứ 1 biểu thị các cột.

public class ArrayMulti {
public static void main(String[] args) {
//Declare and create multidimensional array
int[][] arrnum = new int[2][3];
for(int i=0;i<2;i++) {
for(int j=0;j<3;j++) {
//Assign values to array elements
arrnum[i][j] = i+1;
System.out.print(arrnum[i][j] + ” “);
}
System.out.println();
}
}
}
Output:
1 1 1
2 2 2

Mảng răng cưa trong Java

Mảng răng cưa cũng là mảng 2 chiều có số lượng cột khác nhau. Nói cách khác, mỗi hàng có một số cột khác nhau. Khởi tạo mảng răng cưa khác với khởi tạo mảng 2D thông thường.

Khởi tạo mảng răng cưa

Trong quá trình tạo mảng, chúng tôi chỉ định số hàng. Trong ví dụ này, nó là 2. Trong 2 câu lệnh tiếp theo, đối với mỗi mảng hàng, chúng ta chỉ định số cột. Ở đây, hàng đầu tiên có 1 cột và hàng thứ 3 có 2 cột.

int[][] arrnum = new int[2][];
arrnum[0] = new int[3];
arrnum[1] = new int[4];

Ví dụ về mảng răng cưa bằng cách gán giá trị trong vòng lặp for

public class JaggedArray {
public static void main(String[] args) {
int[][] arrnum = new int[2][];
arrnum[0] = new int[3];
arrnum[1] = new int[4];
int val=1;
//Assign values
for(int i=0;i<arrnum.length;i++) {
for(int j=0;j<arrnum[i].length;j++) {
arrnum[i][j] = val;
}
}
//Print the values
for(int i=0;i<arrnum.length;i++)
{
for(int j=0;j<arrnum[i].length;j++)
{
System.out.print(arrnum[i][j] + ” “);
}
System.out.println();
}
}
}
Output:
1 1 1
1 1 1 1

Ví dụ về mảng có răng cưa bằng cách khởi tạo các giá trị trong quá trình tạo mảng

public class JaggedArray {
public static void main(String[] args) {
int[][] arr = {{4,5,6},{1,2},{7,9,8}};
for(int i=0;i<3;i++)
{
for(int j=0;j<arr[i].length;j++) {
System.out.print(arr[i][j] + ” “);
}
System.out.println();
}
}
}
Output:
4 5 6
1 2
7 9 8

Phương thức mảng Java

Dưới đây là các phương thức trực tiếp được hỗ trợ bởi Mảng trong Java

Phương phápMô tảvoid clone ()Sao chép các giá trị mảng hiện có mà các tham chiếu không được sao chépBoolean bằng (Đối tượng 0)Kiểm tra xem một số đối tượng khác có bằng đối tượng hiện tại hay khôngLớp getClass ()Trả về tên lớpChuỗi toString ()Trả về một chuỗi đại diện của các đối tượngint length ()Trả về độ dài của mảng

Các ngoại lệ mảng Java

Mảng trong Java ném ngoại lệ dưới đây:

  • ArrayIndexOutOfBoundsException: Điều này xảy ra khi giá trị chỉ mục mà chúng tôi chỉ định lớn hơn độ dài của một mảng hoặc khi nó âm. Điều này xảy ra chủ yếu trong khi gán giá trị hoặc truy cập các phần tử mảng.

Sao chép một mảng

Chúng ta có thể sao chép các phần tử từ mảng này sang mảng khác bằng cách sử dụng phương thức arrayycopy của class System.

Đếm các cặp với tổng đã cho

Sao chép cú pháp mảng

public void Arrayopy (Object src, int srcPos, Object dest, int destPos, int length);

đối tượng mảng src-source để sao chép từ

srcPos – vị trí bắt đầu trong mảng nguồn

đối tượng mảng đích để sao chép vào

destPos – vị trí bắt đầu trong mảng đích

chiều dài – số phần tử mảng sao chép

Ví dụ về sao chép một mảng

Trong ví dụ dưới đây, chúng tôi đang sao chép 4 phần tử từ mảng nguồn sang mảng đích. Do đó đầu ra sẽ in “java” ”

public class ArrayCopy {
public static void main(String[] args) {
char[] a = {‘d’,’l’,’h’,’y’,’j’,’a’,’v’,’a’,’g’,’r’,’t’};
char[] b = new char[4];
System.arraycopy(a, 4, b, 0, 4);
System.out.println(String.valueOf(b));
}
}
Output:
java

Truyền mảng cho một phương thức

Trong Java, chúng ta có thể truyền một đối tượng mảng cho một phương thức để thao tác thêm hoặc các thao tác khác. Ví dụ dưới đây cho thấy cách chúng ta có thể truyền một đối tượng mảng gồm các số nguyên vào một phương thức và thực hiện phép cộng tất cả các phần tử của mảng.

public class ArrayDemo3 {
public static void main(String[] args) {
int[] num = {5,7,3,2,8};
add(num);
}
public static void add(int[] num) {
int sum = 0;
for(int i=0;i<num.length;i++) {
sum = sum + num[i];
}
System.out.println(“Sum of array elements is : ” + sum);
}
}
Output:

Tổng các phần tử mảng

is : 25

Trả về mảng từ một phương thức

Chúng ta cũng có thể trả về một mảng đối tượng từ phương thức đến phương thức chính sau khi thực hiện thao tác yêu cầu.

public class ArrayDemo4 {
public static void main(String[] args) {
String[] arr = getArrayValues();
for(String cities:arr) {
System.out.println(cities);
}
}
public static String[] getArrayValues() {
String[] arrCities = {“Chennai”,”Bangalore”,”Delhi”};
return arrCities;
}
}
Output:
Chennai
Bangalore
Delhi

Các thao tác trên mảng

Mảng trong Java thuộc về gói java.util. Có một số hoạt động được hỗ trợ bởi lớp java.util.Array như được đề cập bên dưới:

  • Chúng ta có thể sử dụng phương thức copyOfRange của lớp Array để sao chép một loạt các phần tử từ mảng này sang mảng khác
  • Tìm kiếm một mảng cho giá trị cụ thể dựa trên một chỉ mục (Tìm kiếm nhị phân)
  • So với mảng để kiểm tra sự bình đẳng sử dụng phương pháp bằng
  • Sử dụng phương thức lấp đầy để điền vào một mảng để đặt một giá trị cụ thể tại một chỉ mục
  • Sắp xếp một mảng bằng phương pháp sắp xếp

Tạo mảng bằng đối tượng do người dùng xác định

Trong java, chúng ta cũng có thể tạo một đối tượng do người dùng định nghĩa giống như cách chúng ta tạo một mảng chuỗi, số nguyên, v.v. Đây là một ví dụ về cách chúng ta có thể tạo một đối tượng mảng Student và khởi tạo đối tượng mảng.

public class ArrayDemo5 {
public static void main(String[] args) {
Student[] s = new Student[2];
s[0] = new Student(111,”Ajit”);
s[1] = new Student(112,”Biju”);
}
}
class Student{
public int rollno;
public String name;
public Student(int rno,String n) {
rollno = rno;
name = n;
}
}

Kết luận

Hướng dẫn này cung cấp mô tả chi tiết về Lớp mảng trong Java, các loại mảng trong Java, khai báo, tạo và khởi tạo mảng với nhiều hình ảnh minh họa khác nhau.

Tài liệu tham khảo