Computer >> Máy Tính >  >> Lập trình >> Java

Java Array:Hướng dẫn cho người mới bắt đầu

Điều gì sẽ xảy ra nếu có một cách mà bạn có thể khai báo một biến lưu trữ nhiều giá trị? Có? Thật tuyệt. Trong Java, có một khái niệm gọi là mảng cho phép bạn thực hiện chính xác điều này. Bạn có thể lưu trữ nhiều giá trị trong một biến, điều này giúp giữ cho mã của bạn sạch sẽ và gọn gàng.

Trong hướng dẫn này, chúng ta sẽ thảo luận về cách hoạt động của mảng, tại sao chúng được sử dụng và cách bạn có thể thao tác nội dung của mảng. Chúng ta sẽ xem qua một số ví dụ để cho thấy cách chúng hoạt động.

Mảng là gì?

Mảng, còn được gọi là danh sách, là một cấu trúc dữ liệu chứa một chuỗi các phần tử có thứ tự. Bạn có thể lưu trữ không hoặc nhiều mục trong một mảng, nhưng tất cả chúng phải cùng loại. Ví dụ:một mảng có thể lưu trữ một trăm chuỗi hoặc năm mươi hai số.

Mảng rất hữu ích vì chúng giúp bạn nhóm các giá trị tương tự lại với nhau. Giả sử bạn đang xác định một loạt các loại cà phê. Thay vì khai báo mỗi loại cà phê như một biến riêng, bạn có thể nhóm chúng lại với nhau trong một mảng.

Khi bạn đã khai báo một mảng, bạn có thể thực hiện các phương thức và hoạt động giống nhau trên mọi giá trị trong mảng bằng cách lặp lại qua nó.

Một cách để nghĩ về mảng là như một tập hợp các giá trị. Bạn biết danh sách việc cần làm mà bạn cần phải hoàn thành ngày hôm nay? Điều đó tương tự như một mảng. Có một danh sách các công việc mà bạn cần phải hoàn thành và mỗi công việc được lưu trữ theo một thứ tự cụ thể.

Khai báo một mảng

Khai báo một mảng trong Java rất đơn giản. Tất cả những gì bạn phải làm là chọn tên cho mảng của mình và chỉ định kiểu dữ liệu của nó. Dưới đây là một ví dụ về khai báo một mảng có tên là coffees :

String[] coffees;

Mã của chúng tôi tạo ra một mảng có tên là coffees . Ở bên trái, bạn có loại dữ liệu sẽ được lưu trữ trong mảng của bạn. Bạn cũng có một cặp dấu ngoặc trống. Điều này cho bạn biết mã rằng bạn muốn xác định một mảng, thay vì chỉ một biến chuỗi. Ở bên phải, bạn có tên của biến.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Chúng tôi vẫn chưa hoàn thành. Khi bạn khai báo một mảng, bạn phải cho chương trình của mình biết bạn muốn mảng của mình chứa bao nhiêu mục. Điều này cho phép Java cấp phát bộ nhớ cần thiết để lưu trữ các giá trị trong mảng của bạn.

Chúng tôi muốn coffees của chúng tôi để lưu trữ ba hỗn hợp yêu thích của chúng tôi tại cửa hàng địa phương của chúng tôi. Để làm điều này, chúng tôi sẽ cho chương trình của mình biết rằng số phần tử mà mảng của chúng tôi có thể chứa là ba:

coffees = new String[3];

Điều này sẽ tạo ra ba giá trị trống có thể được lấp đầy trong mảng của chúng ta.

Đảm bảo rằng bạn nghĩ về số lượng giá trị bạn muốn lưu trữ trong mảng của mình. Điều quan trọng cần lưu ý là khi bạn đã xác định kích thước của biến mảng, bạn không thể thay đổi kích thước của biến mảng.

Chúng ta có thể nén mã của mình xuống thành một dòng, nơi chúng ta vừa khai báo một mảng vừa cấp phát bộ nhớ:

String[] coffees = new String[4];

Đây là cách tốt nhất để khai báo một mảng vì nó ngắn gọn và đơn giản. Trường hợp duy nhất mà phương pháp này không hoạt động là khi bạn không chắc mình sẽ lưu trữ bao nhiêu giá trị trong mảng của mình. Nếu đúng như vậy, trước tiên bạn có thể muốn khai báo một mảng, sau đó cấp phát bộ nhớ khi chương trình của bạn biết có bao nhiêu giá trị sẽ lưu trữ.

Trong trường hợp này, mảng của chúng ta sẽ giữ các giá trị chuỗi. Tuy nhiên, bạn cũng có thể khai báo một mảng số nguyên, một mảng đối tượng, một mảng mảng hoặc một mảng chứa một kiểu dữ liệu khác.

Khởi tạo một mảng

Chúng tôi vẫn chưa hoàn thành việc thiết lập mảng của mình. Cho đến nay, chúng tôi đã khai báo một mảng chuẩn. Vấn đề là nó chưa có bất kỳ giá trị nào. Cú pháp để gán một tập hợp các giá trị ban đầu cho một mảng trong khi khai báo một biến là:

String[] coffees = { "Rwanda Izuba", "French Roast", "Vietnam Da La Arabica" };

Trong ví dụ này, chúng tôi đã gán ba giá trị cho mảng của mình.

Truy cập các phần tử trong một mảng

Vẻ đẹp của các mảng là chúng dễ tiếp cận. Nói một cách ẩn dụ, nó giống như việc khoanh tròn một mục trong danh sách việc cần làm mà bạn muốn tập trung vào.

Bên trong một mảng, mỗi mục được đánh số đặc biệt của riêng nó. Chúng được gọi là số chỉ mục. Số chỉ mục bắt đầu từ số 0 và chúng tăng 1 cho mỗi mục trong mảng của bạn. Hãy xem xét danh sách sau:

  • 0:Rwanda Izuba
  • 1:Nướng kiểu Pháp
  • 2:Arabica Đà Lạt Việt Nam

Trong danh sách này, hỗn hợp Rwanda Izuba sẽ có giá trị chỉ số là 0, hỗn hợp French Roast sẽ có giá trị chỉ số 1 và hỗn hợp Arabica Đà Lạt của Việt Nam sẽ có giá trị chỉ số là 2. Hãy lấy mảng sau:

String[] coffees = { "Rwanda Izuba", "French Roast", "Vietnam Da La Arabica" };

Nếu bạn muốn truy cập mục đầu tiên trong mảng này, bạn có thể sử dụng mã này:

System.out.println(coffees[0]);

Mã của chúng tôi trả về:Rwanda Izuba.

Giá trị chỉ mục được chuyển vào mảng của bạn giữa các dấu ngoặc vuông. Phạm vi số tồn tại dưới dạng giá trị chỉ mục nằm trong khoảng từ 0 đến một nhỏ hơn độ dài mảng của bạn. Điều này là do, như chúng tôi đã đề cập trước đó, các mảng được lập chỉ mục từ giá trị 0.

Nếu bạn cố gắng truy cập một giá trị chỉ mục không tồn tại, một lỗi sẽ được trả về:

ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3

Trong trường hợp này, chúng tôi đã cố gắng truy cập giá trị chỉ mục 3 trong mảng của chúng tôi. Bởi vì các giá trị chỉ mục của chúng tôi chỉ có tối đa hai - hãy nhớ rằng, các mảng được lập chỉ mục bắt đầu từ 0 - một lỗi đã được trả về.

Hãy nâng nó lên một tầm cao. Giả sử rằng bạn muốn xem qua từng mục trong mảng của mình và thực hiện từng thao tác trên chúng. Chúng tôi sẽ in mọi mục trong mảng của chúng tôi vào bảng điều khiển. Bạn có thể thực hiện điều này bằng cách sử dụng vòng lặp for-each, như sau:

class CoffeeArray {
   	public static void main(String[] args) {
String[] coffees = { "Rwanda Izuba", "French Roast", "Vietnam Da La Arabica" };
for (String coffee : coffees) {
	System.out.println(coffee);
}
	}
}

Mã của chúng tôi trả về:

Rwanda Izuba
French Roast
Vietnam Da La Arabica

Trong ví dụ này, mã của chúng tôi lặp lại qua mọi mục trong coffees của chúng tôi mảng và in từng mục ra bảng điều khiển. Chúng tôi đã sử dụng vòng lặp for-each thay vì vòng lặp “for” vì nó không yêu cầu bộ đếm, có nghĩa là nó ngắn gọn hơn và dễ đọc hơn.

Thay đổi các mục trong một mảng

Houston chúng ta có một vấn đề. Nó chỉ ra rằng hỗn hợp Pháp yêu thích của chúng tôi thực sự không được gọi là French Roast. Nó được gọi là French Classic. Nếu chúng ta muốn thay đổi điều này, chúng ta có thể sử dụng lập chỉ mục.

Hãy xem xét đoạn mã sau:

class CoffeeArray {
   	public static void main(String[] args) {
String[] coffees = { "Rwanda Izuba", "French Roast", "Vietnam Da La Arabica" };
coffees[1] = "French Classic";
System.out.println(coffees[1]);
	}
}

Chúng tôi đã sử dụng toán tử gán (=) để thay đổi giá trị của cà phê tồn tại ở vị trí chỉ mục 1. Chúng tôi đã thay đổi giá trị của nó từ French Roast sang French Classic . Mã của chúng tôi trả về:French Classic.

Mảng Java:Một ví dụ

Hãy tập hợp tất cả các khái niệm mà chúng ta đã thảo luận trong một ví dụ. Giả sử chúng tôi muốn tính tổng số tiền chúng tôi đã chi cho cà phê trong tuần trước.

Đầu tiên, chúng ta sẽ thiết lập lớp và các biến cho chương trình của chúng ta:

class CoffeePrices {
   	public static void main(String[] args) {
		Double[] purchases = {2.55, 2.75, 2.99, 3.05};
		double sum = 0;
	}
}

Chúng tôi đã khai báo hai biến. Một biến lưu trữ danh sách các giao dịch mua của chúng tôi. Biến tiếp theo lưu trữ số tiền chúng tôi đã chi cho cà phê. Bước tiếp theo của chúng tôi là tạo một vòng lặp cho mỗi lần mua cà phê và thêm nó vào biến “sum” của chúng tôi:

for (double purchase : purchases) {
sum += purchase;
}

Nếu chúng tôi chạy mã của mình, chương trình của chúng tôi sẽ tính tổng số tiền chúng tôi đã chi cho cà phê trong tuần trước. Chỉ có một vấn đề:chương trình của chúng tôi không cho chúng tôi biết giá trị đó là gì! Chúng tôi có thể truy xuất giá trị bằng cách in nó ra bảng điều khiển:

Khi chúng tôi chạy tất cả mã này cùng nhau, thông tin sau được trả về:

You've spent $11.34 on coffee in the last week.

$11.34 on coffee. Not bad! What a useful program.



Kết luận (và Thách thức)

Mảng là một kiểu dữ liệu có thể lưu trữ nhiều giá trị của cùng một kiểu dữ liệu. Bạn có thể khai báo một mảng cho bất kỳ thứ gì, chẳng hạn như danh sách các cuốn sách yêu thích của bạn, danh sách người chơi trong trò chơi hoặc danh sách các số mà bạn muốn tính giá trị trung bình.

Bạn đang tìm kiếm một thử thách? Đọc tiếp.

Viết chương trình yêu cầu người dùng chọn điểm đến du lịch để tìm hiểu thêm. Bạn nên lưu trữ các điểm đến du lịch trong một mảng. Bạn nên lưu trữ mô tả một câu của mỗi điểm đến trong một mảng riêng biệt.

Khi người dùng chọn điểm đến du lịch, hãy tìm điểm đến đó trong mảng các điểm đến du lịch của bạn và tính số chỉ mục của điểm đến đó. Sau đó, sử dụng số chỉ mục đó để in ra mô tả một câu về đích tương ứng tới bảng điều khiển.

Bây giờ bạn đã sẵn sàng để bắt đầu sử dụng mảng trong Java như một người chuyên nghiệp!