1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng cấu trúc dữ liệu chương 3 nguyễn xuân vinh

17 246 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 292,83 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

MẢNG Arrays Nguyễn Xuân Vinh CẤU TRÚC DỮ LIỆU DATA STRUCTURES [214331]...  Dùng để lưu trữ một tập các phần tử theo thứ tự và có thể được truy xuất thông qua chỉ mục index.. • Không có

Trang 1

MẢNG (Arrays)

Nguyễn Xuân Vinh

CẤU TRÚC DỮ LIỆU DATA STRUCTURES

[214331]

Trang 2

 Collection duy nhất được hỗ trợ sẵn trong ngôn ngữ lập trình Java

 Dùng để lưu trữ một tập các phần tử theo thứ tự và có thể được truy xuất thông qua chỉ mục index

 Là lớp con của Object và hiện thực cả 2 interface Serializable và Cloneable

• Không có java source file để xem cách thức làm việc bên trong của 1 mảng như thế nào

• Khi tạo ra 1 mảng cần chỉ định kích thước và kiểu dữ liệu, sau đó

có thể đưa các phần tử có cùng kiểu đã định sẵn vào trong mảng cho tới khi mảng đầy

Trang 3

• Ưu điểm:

– Truy xuất nhanh

– Sử dụng đơn giản

• Nhược điểm:

– Phải chỉ định một kích thước cụ thể tại thời điểm xây dựng mảng

– Tuân thủ luật đầy

– Việc bố trị lại khá phức tạp

Trang 4

• Bước 1: Khai báo mảng (Declaration)

String[] names;

• Bước 2: Khởi tạo mảng (Initialization)

names = new String[3];

• Bước 3: Gán giá trị (Assignment)

names[0] = "Leonardo";

names[1] = "da";

names[2] = "Vinci";

• Cách tạo và gán trực tiếp:

String names[] = new String[]{"Leonardo", "da", "Vinci"}; String names[] = {"Leonardo", "da", "Vinci"};

String names[] = new String[3]{"Leonardo", "da",

"Vinci"}; ???

• Các phần tử trong mảng có thể là:

– Kiểu dữ liệu nguyên thủy (primitive date type).

– Kiểu dữ liệu dạng Object (Reference date type).

Có bao nhiêu cách đặt dấu []?

Trang 5

M

Trang 7

Mảng chứa giá trị thực sự

Trang 8

Mảng chỉ chứa các tham chiếu (references) tới đối tượng thật sự

Trang 9

• Khi mỗi phần tử của 1 mảng trỏ tới 1 mảng khác, ta có mảng đa

chiều (multidimensional array).

• Khai báo (declaration)

int A[][];

• Khởi tạo (Initialization)

A = new int[3][4];

• Gán giá trị (Assignment)

A[0][0] = 1;

• Truy vấn mảng (Query)

int x = A[1][3];

 x = ?

Trang 10

1) Duyệt mảng

2) Copy và clone mảng

3) Phép gán mảng

4) Kiểm tra 2 mảng bằng nhau 5) Thêm phần tử vào mảng

Trang 11

int[] arrays = new int[4];

arrays[0] = 0;

arrays[1] = 1;

arrays[2] = 2;

arrays[3] = 3;

// Cách 1

for (int i = 0; i < arrays.length ; i++) { System.out.println(arrays[i]);

}

Index of arrays

Trang 12

• Để sao chép các phần tử từ mảng này sang mảng khác ta dùng System.arraycopy():

int[] arrays = new int[10];

// Cách 1

int[] clone1 = new int[10];

System.arraycopy(arrays, 0, clone1, 0, 10);

// Cách 2

int[] clone2 = Arrays.copyOfRange(arrays, 0, 10);

// Cách 3

int [] clone3 = new int [10];

for ( int i=0; i<arrays.length; i++) {

clone3[i] = arrays[i];

}

Trang 13

Button buttons[] = {

new Button ( "One" ),

new Button( "Two" ),

new Button( "Three" ) };

Component components[] = buttons;

Trang 14

• “==”: kiểm tra 2 mảng có cùng vị trí bộ nhớ (memory space) hay không

• “Arrays.equals()”: kiểm tra 2 mảng có bằng nhau theo nghĩa “tự nhiên” hay không

Trang 15

int[] arrays = new int[4];

arrays[0] = 0;

arrays[1] = 1;

arrays[2] = 2;

arrays[3] = 3;

int[] newArrays = new int[5];

for(int i=0; i<arrays.length; i++) {

newArrays[i] = arrays[i];

Trang 16

 Mảng là gì?

 Ưu và nhược điểm của mảng

 Tạo mảng

 Giá trị mặc định của mảng

 Quản lý bộ nhớ của mảng trong JVM (Memory Allocation)

 Mảng đa chiều

 Các phép toán trên mảng:

 Duyệt mảng

 Copy & Clone

 Assign

 Compare (= =)

 Thêm phần tử vào mảng

Trang 17

HỎI ĐÁP

Ngày đăng: 03/12/2015, 00:36

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm