Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Kiểm tra mảng Java chứa giá trị (Java Array Contains)

Khi làm việc mảng trong Java, bạn có thể gặp tình huống muốn kiểm tra mảng có chứa giá trị cụ thể không.

Ví dụ, nếu xây dựng chương trình theo dõi tiến độ quan sát chim mùa này, bạn muốn xây hàm cho phép kiểm tra xem đã từng thấy loài chim cụ thể chưa.

Có vài cách kiểm tra mảng có chứa giá trị cụ thể. Hướng dẫn này thảo luận, với ví dụ, cách kiểm tra – dùng vòng lặp for-each, contains(), và stream() – nếu mảng trong mã Java chứa giá trị cụ thể.

Sau đọc hướng dẫn, bạn sẽ thành chuyên gia kiểm tra mảng Java có chứa giá trị cụ thể.

Mảng trong Java (Arrays in Java)

Trong Java, mảng là container giữ dữ liệu kiểu đơn. Ví dụ, mảng giữ danh sách tên 14 loài chim thấy trong vườn sau nhà năm nay. Mảng chứa 14 giá trị chuỗi.

Mảng là kiểu dữ liệu quan trọng vì cho phép lưu nhiều giá trị trong một biến. Hiệu quả hơn lưu từng giá trị biến riêng, giúp bảo toàn độ đọc chương trình.

Ví dụ mảng Java:

String[] bagelShops; bagelShops = new String[4];

Trong ví dụ, khai báo mảng – tên bagelShops – lưu giá trị chuỗi. Sau đó định nghĩa biến bagelShops lưu bốn chuỗi. Mã gán bốn tiệm bagel cho mảng:

String[] bagelShops = {"Absolute Bagels", "Bo's Bagels", "Brooklyn Bagel and Coffee Company", "Forest Hills Bagel"};

Nhưng làm gì để kiểm tra mảng chứa giá trị cụ thể? Ví dụ, nếu muốn kiểm tra Forest Hills Bagel có trong danh sách tiệm yêu thích? Hãy đi sâu vài cách.

Dùng vòng lặp for-each

Vòng lặp for-each, còn gọi enhanced for loops, là dạng for loop dùng lặp qua tất cả mục trong mảng hoặc collection. Ví dụ, dùng for-each lặp qua danh sách đồng xu trong mảng lưu tất cả đồng xu bộ sưu tập.

Để kiểm tra mảng chứa giá trị cụ thể, dùng vòng lặp for. Vòng lặp lặp qua mọi mục mảng và kiểm tra mỗi mục có bằng mục tìm không.

Giả sử có danh sách tiệm bagel yêu thích NYC và muốn kiểm tra Absolute Bagels có trong danh sách. Làm được dùng vòng lặp đơn giản:

class Main { public static void main(String[] args) { String[] bagelShops = {"Absolute Bagels", "Bo's Bagels", "Brooklyn Bagel and Coffee Company", "Forest Hills Bagel"}; String shopToFind = "Absolute Bagels"; boolean found = false; for (String shop : bagelShops) { if (shop == shopToFind) { found = true; break; } } if (found) { System.out.println("Absolute Bagels is on your list of favorite bagel stores!"); } else { System.out.println("Absolute Bagels is not on your list of favorite bagel stores."); } }

Mã trả về:

Absolute Bagels is on your list of favorite bagel stores.

Phân tích mã. Đầu tiên khai báo mảng bagelShops lưu bốn tiệm bagel yêu thích NYC.

Sau khai báo biến shopToFind gán giá trị Absolute Bagels. Giá trị này tìm trong mảng bagelShops. Tiếp, khai báo biến found theo dõi Absolute Bagels có tìm thấy không.

Dòng tiếp, khởi tạo for-each lặp qua mọi mục bagelShops. Dùng if kiểm tra từng tiệm bagelShops có bằng giá trị biến shopToFind không.

Nếu câu lệnh true, found đặt true, và for-each dừng vì chạy break. Nếu false, mã trong if không chạy.

Cuối chương trình, nếu found true, mã in Absolute Bagels is on your list of favorite bagel stores! ra console; ngược lại, in Absolute Bagels is not on your list of favorite bagel stores.

Chúng ta cũng dùng cách này cho danh sách số. Vì vậy, nếu có danh sách số và muốn xem có chứa số cụ thể không, dùng mã tương tự ví dụ trên. Tất nhiên, dùng số thay vì chuỗi.

Dùng phương thức contains()

Cũng kiểm tra mảng chứa giá trị dùng phương thức contains() Java. contains() chấp nhận một tham số: giá trị tìm trong mảng.

Phương thức contains() chỉ dùng kiểm tra mảng chứa giá trị chuỗi. Nếu tìm số trong mảng, có thể dùng kỹ thuật for-each loop.

Giả sử có danh sách ban yêu thích và muốn xem Beatles có trong danh sách. Dùng mã sau:

class Main { public static void main(String[] args) { String[] favoriteBands = {"Beatles", "Revivalists", "Jonas Brothers"}; String favoriteToFind = "Beatles"; boolean found = favoriteBands.contains(favoriteToFind); if (found) { System.out.println("Beatles is on your list of favorite bands!"); } else { System.out.println("Beatles is not on your list of favorite bands."); } } }

Mã trả về:

Beatles is on your list of favorite bands!

Phân tích mã. Đầu tiên khai báo mảng favoriteBands lưu tên ban yêu thích. Sau khai báo biến favoriteToFind lưu tên ban tìm.

Dòng tiếp, dùng contains() kiểm tra mảng favoriteBands có chứa giá trị biến favoriteToFind (là Beatles ví dụ này). Gán kết quả contains() cho boolean found.

Nếu found true, mã in Beatles is on your list of favorite bands! ra console; ngược lại, in Beatles is not on your list of favorite bands.

Dùng phương thức stream()

Gói Java Arrays chứa hàm làm việc mảng. Một hàm là stream(), dùng kiểm tra mảng chứa giá trị cụ thể. Phải dùng anyMatch() với stream() để làm vậy.

Giả sử có danh sách chương trình TV yêu thích của Ada, muốn xem Parks and Recreation có trong danh sách. Làm được dùng mã:

import java.util.Arrays; class Main { public static void main(String[] args) { String[] favoriteShows = {"Billions", "Silicon Valley", "Superstore"}; String showToFind = "Parks and Recreation"; boolean found = Arrays.stream(favoriteShows).anyMatch(show -> show.equals(showToFind)); if (found) { System.out.println("Parks and Recreation is on Ada's list of favorite TV shows."); } else { System.out.println("Parks and Recreation is not on Ada's list of favorite TV shows."); } } }

Mã trả về:

Parks and Recreation is not on Ada's list of favorite TV shows.

Phân tích mã. Đầu, import gói Java Arrays. Dùng: import java.util.Arrays;.

Tiếp, khai báo mảng favoriteShows. Mảng lưu danh sách chương trình TV yêu thích Ada. Sau khai báo showToFind lưu tên chương trình tìm. Gán giá trị Parks and Recreation cho showToFind.

Sau, dùng Arrays.stream() và anyMatch() kiểm tra giá trị showToFind có tồn tại trong mảng favoriteShows không. Phương thức trả về true/false gán cho boolean found.

Nếu found true, chương trình in Parks and Recreation is on Ada's list of favorite TV shows. ra console. Ngược lại, in Parks and Recreation is not on Ada's list of favorite TV shows.

Kết luận

Kiểm tra mảng chứa giá trị cụ thể là thao tác phổ biến Java. Ba cách chính:

  • vòng lặp for-each
  • contains()
  • stream()

Hướng dẫn thảo luận, dùng ví dụ, cách kiểm tra mảng Java chứa giá trị cụ thể. Bây giờ bạn có kỹ năng kiểm tra mảng Java chứa giá trị như lập trình viên chuyên nghiệp!