Tóm Tắt
Array trong Java
geeksforgeeks/arrays-in-java/
1/. Khái niệm:
Mảng (Array) là một nhóm các phần tử có cùng kiểu dữ liệu, có cùng tên và phân biệt với
nhau bằng chỉ số.
2/. Khai báo mảng 1 chiều:
2/. Cú pháp khai báo mảng:
type tên biến[];
hoặc
type[] tên biến;
Ví dụ: khai báo các loại mạng chứa dữ liệu nguyên thủy.
int intArray[];
int a[];
hoặc:
int[] intArray;
int[] a;
byte B[];
short C[];
boolean D[];
long E[];
float M[];
double Arr[];
char charArr[];
Có thể là mảng đối tượng:
MyClass X[]; //MyClass là kiểu lớp do người dùng định nghĩa.
2/. Cú pháp khởi tạo mảng: sau khi khai báo xong, mảng phải được khởi tạo để được
cung cấp vùng nhớ:
Tên biến = new type[size];
Ví dụ:
int A[]; //khai báo array A
A = new int[20]; // khởi tạo mảng A chứa 20 phần tử [0.]
hoặc:
int[] A = new int[20]; //kết hợp cả 2 lệnh trên
Student[] arr = new Student[7]; //student là class do người dùng định nghĩa
2/. Truy xuất các phần tử của mảng: Mỗi phần tử trong mảng được truy cập thông qua
chỉ số của nó: tên biến[chỉ số]. Chỉ số bắt đầu bằng 0 và kết thúc tại (size) -1. Tất cả các
phần tử của mảng có thể được truy cập bằng vòng lặp.
2/. Các phương thức mảng:
System ( Object src, int srcPos, Object dest, int destPos, int length) : sao
chép từ mảng nguồn src mảng đích dest, theo các tham số.
-
src: − Mảng được xem là nguồn cho quá trình sao chép.
-
srcPos: − Vị trí của phần tử bắt đầu sao chép (Index).
-
dest: − Mảng được xem là đích của quá trình sao chép ( Mảng sẽ được tạo
thành ). -
destPos: − Vị trí của phần tử bắt đầu nhận dữ liệu tại “ mảng đích ” (Index).
-
length: − Số lượng phần tử sẽ sao chép.
Tên biến(): nhân bản 1 mảng cho mảng khác (2 mảng giống hệt nhau)
Ví dụ:
class Array
{
public static void main (String[] args)
{
//Khai báo mảng số nguyên
int[] a;
//Khởi tạo mảng chứa 5 phần tử
a = new int[5];
//gán giá trị cho các phần tử theo chỉ số
a[0] = 10;
a[1] = 20;
import java.*;
public class BT1 {
public static void main(String[] args) {
Scanner input = new Scanner(System. in );
int [] a;
int n, i, max, x, dem;
System. out .print(“Nh p s ph n t c a m ng: “ậốầửủả );
n=input();
a= new int [n]; //kh i t o m ngởạả
for (i=0;i<n;i++)
{
System. out .print(“Nh p ph n t th “ậầửứ + i + “: “);
a[i]=input();
}
System. out .println(“\nXem l i m ng đã nh p”ạảậ );
for (i=0;i<n;i++) System. out .print(a[i] + “\t”);
max=a[0]; //tìm ph n t maxầử
for (i=1;i<n;i++)
{
if (max<a[i])
max =a[i];
}
System. out .println(“\nPh n t Max c a m ng là: “ầửủả + max);
dem=0; //đ m ph n t b ng xếầửằ
System. out .print(“\nNh p ph n t c n đ m x: “ậầửầế );
x=input();
for (i=0;i<n;i++)
{
if (x==a[i]) dem++;
}
System. out .println(“\nS ph n t b ng “ốầửằ + x + ” là : ” +
dem);
}
}
Bài tập mẫu 2 : cải tiến bài tập mẫu 1, viết chương trình có cấu trúc phương thức và có
Menu chọn thực hiện. (sv chuyển sang phương thức tĩnh)
import java.*;
public class BT2 {
//ph ng th c nh p m ng t bàn phímươứậảừ
public void nhapMang( int a[] , int n)
{
Scanner input = new Scanner(System. in );
for ( int i=0; i<n; i++)
{
System. out .print(“Nhap Phan tu thu “+ i + “: “);
a[i]=input();
}
}
//ph ng th c xu t M ngươứấả
public void xuatMang( int a[] , int n)
{
System. out .println();
for ( int i=0; i<n; i++)
System. out .print(“\t” + a[i]);
}
//ph ng th c tìm và tr v ph n t Maxươứảềầử
public int timMax( int a[], int n)
{
int max=a[0];
for ( int i=1; i<n; i++)
if (max<a[i]) max=a[i];
return max;
}
//ph ng th c đ m s ph n t = x trong m ngươứếốầửả
public int demX( int a[], int n, int x)
{
int dem=0;
for ( int i=0; i<n; i++)
if (a[i]==x) dem++;
return dem;
}
public static void main(String[] args) {
BT2 obj = new BT2();
Scanner input = new Scanner(System. in );
int n, chon;
int [] a; //khai báo m ng a ch a các s nguyênảứố
System. out .println(“\nNh p s ph n t c a m ng: “ậốầửủả );
n= input();
a = new int [n]; //kh i t o m ng tr c khi nh p d li uởạảướậữệ
//ch ng trình có Menu ch n th c hi nươọựệ
do
{
System. out .println(“\nBài t p m u 2″ậẫ );
System. out .println(“1. T o m ng nh p t bàn phím”ạảậừ );
System. out .println(“2. Xem m ng”ả );
System. out .println(“3. Tìm ph n t Max”ầử );
{
public void nhapMang( int a[][] , int n, int m)
{
Scanner s = new Scanner(System. in );
for ( int i=0; i<n; i++)
{
for ( int j=0; j<m; j++)
{
System. out .print(“Nh p Ph n t th “ậầửứ + (i+1) + “, “
- (j+1) + “: “);
a[i][j]=s();
}
}
}
public void xuatMang( int a[][] , int n, int m)
{
for ( int i=0; i<n; i++)
{
for ( int j=0; j<m; j++)
System. out .print(“\t” + a[i][j]);
System. out .println();
}
}
public static int demX( int a[][], int x, int n, int m)
{
int dem=0;
for ( int i=0; i<n; i++)
for ( int j=0; j<m; j++)
if (a[i][j]==x) dem++;
return dem;
}
public static void thayXY( int a[][], int x, int y, int n, int m)
{
int dem=0;
for ( int i=0; i<n; i++)
for ( int j=0; j<m; j++)
if (a[i][j]==x)
{
a[i][j]=y;
dem++;
}
System. out .println(“Đã thay ” + dem + ” ph n t “ầử );
}
public static void main(String[] args)
{
Array2 obj = new Array2();
Scanner input = new Scanner(System. in );
int dong, cot, x, y, chon;
int [][] a; //khai báo m ng a ch a các s nguyênảứố
System. out .print(“Nh p s dòng m ng: “ậốả );
dong= input();
System. out .print(“Nh p s c t m ng: “ậốộả );
cot= input();
//kh i t o m ng tr c khi nh p d li uởạảướậữệ
a = new int [dong][cot];
obj(a, dong, cot);
obj(a, dong, cot);
System. out .print(“Nh p s c n đ m x: “ậốầế );
x = input();
System. out .println(“S x: “ố + x + “, có trong m ng “ả +
demX (a, x, dong, cot) + ” l n”ầ );
System. out .print(“Nh p s c n tìm x: “ậốầ );
x = input();
System. out .print(“Nh p s c n thay y: “ậốầ );
y = input();
thayXY (a, x, y, dong, cot);
System. out .println(“K t qu sau khi thay:”ếả );
obj(a, dong, cot);
input();
System. out .println(“T m bi t.”ạệ );
}
}
Kết quả: