6 Arrayin Java – adasd – Array trong Java geeksforgeeks/arrays-in-java/ 1/. Khái niệm: Mảng (Array) – StuDocu

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ả: