Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Java Array ประกอบด้วย

เมื่อคุณทำงานกับอาร์เรย์ใน Java คุณอาจพบสถานการณ์ที่คุณต้องการตรวจสอบว่าอาร์เรย์มีค่าเฉพาะหรือไม่

ตัวอย่างเช่น หากคุณกำลังสร้างโปรแกรมที่ติดตามความคืบหน้าในการดูนกของคุณในฤดูกาลนี้ คุณอาจต้องการสร้างฟังก์ชันที่ช่วยให้คุณตรวจสอบว่าคุณเคยเห็นนกบางสายพันธุ์หรือไม่

มีสองสามวิธีที่คุณสามารถใช้ตรวจสอบว่าอาร์เรย์มีค่าเฉพาะหรือไม่ บทช่วยสอนนี้จะอธิบายพร้อมตัวอย่าง วิธีตรวจสอบ โดยใช้ for-each loop contains() และ stream() —หากอาร์เรย์ในโค้ด Java ของคุณมีค่าที่แน่นอน

หลังจากอ่านบทช่วยสอนนี้ คุณจะเป็นผู้เชี่ยวชาญในการตรวจสอบว่าอาร์เรย์ในโปรแกรม Java มีค่าเฉพาะหรือไม่

อาร์เรย์ในภาษาจาวา

ใน Java อาร์เรย์คือคอนเทนเนอร์ที่เก็บข้อมูลประเภทเดียว ตัวอย่างเช่น อาร์เรย์อาจมีรายชื่อนก 14 สายพันธุ์ที่คุณเห็นในการดูนกในสวนหลังบ้านของคุณในปีนี้ อาร์เรย์ดังกล่าวจะมีค่าสตริง 14 ค่า

อาร์เรย์เป็นประเภทข้อมูลที่สำคัญเนื่องจากช่วยให้นักพัฒนาสามารถเก็บค่าจำนวนมากไว้ในตัวแปรเดียวได้ ซึ่งมีประสิทธิภาพมากกว่าการจัดเก็บแต่ละค่าเหล่านั้นเป็นตัวแปรแยกกัน และช่วยรักษาความสามารถในการอ่านของโปรแกรม

นี่คือตัวอย่างอาร์เรย์ใน Java:

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

ในตัวอย่างนี้ เราได้ประกาศอาร์เรย์ที่เรียกว่า bagelShops ซึ่งเก็บค่าสตริงไว้ จากนั้นเรากำหนดว่าตัวแปร bagelShops ควรจะสามารถเก็บสตริงได้สี่สตริง นี่คือรหัสที่เราจะใช้เพื่อกำหนดร้านเบเกิลสี่ร้านให้กับอาร์เรย์นี้:

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

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

แต่เราจะทำอย่างไรเพื่อตรวจสอบว่าอาร์เรย์มีค่าเฉพาะหรือไม่ ตัวอย่างเช่น จะเป็นอย่างไรถ้าเราต้องการตรวจสอบว่าร้านเบเกิล Forest Hills อยู่ในรายชื่อร้านเบเกิลที่เราชื่นชอบหรือไม่ มาดูแนวทางที่เราสามารถใช้ได้กัน

การใช้ for-each loop

for-each loops หรือที่เรียกว่า enhanced for loops คือรูปแบบหนึ่งของ for loop ที่คุณสามารถใช้เพื่อวนซ้ำทุกรายการในอาร์เรย์หรือคอลเลกชัน ตัวอย่างเช่น คุณสามารถใช้ for-each loop เพื่อวนซ้ำรายการเหรียญในอาร์เรย์ที่เก็บเหรียญทั้งหมดไว้ในคอลเลคชันเหรียญ

เพื่อตรวจสอบว่าอาร์เรย์มีค่าเฉพาะหรือไม่ เราสามารถใช้ for loop ได้ สำหรับลูปนี้จะวนซ้ำทุกรายการในอาร์เรย์และตรวจสอบว่าแต่ละรายการเท่ากับรายการที่เรากำลังค้นหาหรือไม่

สมมติว่าเรามีร้านเบเกิลที่เราชื่นชอบในนิวยอร์กซิตี้ และต้องการตรวจสอบว่า Absolute Bagels อยู่ในรายชื่อหรือไม่ เราสามารถทำได้โดยใช้ลูปง่ายๆ นี้:

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.");
	}
}

รหัสของเราส่งคืน:

Absolute Bagels is on your list of favorite bagel stores.

มาทำลายรหัสของเรากัน ขั้นแรก เราประกาศอาร์เรย์ที่เรียกว่า bagelShops ซึ่งจัดเก็บร้านเบเกิลที่เราชื่นชอบสี่ร้านในนิวยอร์ค

จากนั้นเราประกาศตัวแปรชื่อ shopToFind และกำหนดค่า Absolute Bagels . นี่คือค่าที่เราต้องการค้นหาในอาร์เรย์ bagelShops ของเรา ต่อไป เราประกาศตัวแปรที่เรียกว่า found ซึ่งจะใช้ในการติดตามว่า Absolute Bagels อยู่ในรายการของเรา

ในบรรทัดถัดไป เราเริ่มต้น for-each loop ที่วนซ้ำทุกรายการในรายการ bagelShops จากนั้นเราใช้ if คำสั่งเพื่อตรวจสอบว่าแต่ละร้านในรายการ bagelShops ของเรามีค่าเท่ากับค่าที่เก็บไว้ในตัวแปร shopToFind หรือไม่

หากคำสั่งประเมินเป็นจริง พบถูกตั้งค่าเป็นจริง และ for-each loop หยุดทำงานเนื่องจากโปรแกรมรัน break คำแถลง. หากคำสั่งประเมินเป็นเท็จ โค้ดในคำสั่ง if จะไม่ทำงาน

ในตอนท้ายของโปรแกรม หากพบว่ามีค่าเท่ากับ true รหัสของเราจะพิมพ์ Absolute Bagels is on your list of favorite bagel stores! ไปที่คอนโซล มิฉะนั้น รหัสของเราจะพิมพ์ไปที่คอนโซล:Absolute Bagels is not on your list of favorite bagel stores.

เราอาจใช้วิธีนี้กับรายการตัวเลขก็ได้ ดังนั้น หากเรามีรายการตัวเลขและต้องการดูว่ารายการดังกล่าวมีหมายเลขใดหรือไม่ เราสามารถใช้โค้ดที่คล้ายกับที่เราใช้ในตัวอย่างข้างต้นได้ แน่นอน เราจะใช้ตัวเลขแทนค่าสตริงในกรณีนี้

การใช้เมธอดมี()

คุณยังสามารถตรวจสอบว่าอาร์เรย์มีค่าเฉพาะหรือไม่โดยใช้ Java contains() กระบวนการ. contains() ยอมรับหนึ่งพารามิเตอร์:ค่าที่คุณต้องการค้นหาในอาร์เรย์

contains() สามารถใช้เมธอดเพื่อตรวจสอบว่าอาร์เรย์มีค่าสตริงหรือไม่ หากคุณต้องการค้นหาตัวเลขในอาร์เรย์ คุณอาจต้องการใช้เทคนิค for-each loop แทน

สมมติว่าเรามีรายชื่อวงดนตรีที่เราชื่นชอบและต้องการดูว่าเดอะบีทเทิลส์อยู่ในรายชื่อนั้นหรือไม่ เราสามารถใช้รหัสต่อไปนี้เพื่อดำเนินการดังกล่าว:

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.");
		}
	}
}

รหัสของเราส่งคืน:

Beatles is on your list of favorite bands!

มาทำลายรหัสของเรากัน ขั้นแรก เราประกาศอาร์เรย์ที่เรียกว่า FavoriteBands ซึ่งจัดเก็บรายชื่อวงดนตรีที่เราชื่นชอบ จากนั้นเราประกาศตัวแปรที่เรียกว่า FavoriteToFind ซึ่งเก็บชื่อของวงดนตรีที่เราต้องการค้นหา

ในบรรทัดถัดไป เราใช้ contains() เพื่อตรวจสอบว่าอาร์เรย์ FavoriteBands มีค่าที่เก็บไว้ใน FavoriteToFind หรือไม่ (ซึ่งก็คือ Beatles ในตัวอย่างนี้) เรากำหนดผลลัพธ์ของ contains() คำสั่งบูลีนที่เรียกว่าพบ

หากพบว่ามีค่าเท่ากับ true โค้ดของเราจะพิมพ์ว่า Beatles is on your list of favorite bands! ไปที่คอนโซล มิฉะนั้น รหัสของเราพิมพ์ว่า Beatles is not on your list of favorite bands. ไปที่คอนโซล

การใช้เมธอด stream()

แพ็คเกจ Java Arrays มีฟังก์ชันหลายอย่างที่ใช้ในการทำงานกับอาร์เรย์ หนึ่งในฟังก์ชันเหล่านี้คือ stream() ซึ่งคุณสามารถใช้ตรวจสอบว่าอาร์เรย์มีค่าเฉพาะหรือไม่ คุณต้องใช้ anyMatch() เมธอดด้วย stream() ทำหน้าที่ดังกล่าว

สมมติว่าเรามีรายการโทรทัศน์เรื่องโปรดของเพื่อน Ada และเราอยากทราบว่า สวนสาธารณะและสันทนาการ อยู่ในรายการของเธอ เราสามารถทำได้โดยใช้รหัสนี้:

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.");
		}
	}
}

รหัสของเราส่งคืน:

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

มาทำลายรหัสของเรากัน ขั้นแรก เรานำเข้าแพ็คเกจ Java Arrays ในการทำเช่นนั้น เราใช้รหัส:import java.util.Arrays; .

ต่อไป เราประกาศอาร์เรย์ที่เรียกว่า FavoriteShows อาร์เรย์นี้เก็บรายการรายการทีวีโปรดของ Ada จากนั้นเราประกาศตัวแปรชื่อ showToFind ซึ่งเก็บชื่อของรายการที่ต้องการค้นหา ในกรณีนี้ เรากำหนดค่า Parks and Recreation เพื่อแสดงToFind

จากนั้น เราใช้ Arrays.stream() และ anyMatch() วิธีการตรวจสอบว่าค่าที่เก็บไว้ใน showToFind มีอยู่ในอาร์เรย์รายการโปรดหรือไม่ เมธอดเหล่านี้คืนค่าจริงหรือเท็จที่กำหนดให้กับตัวแปรบูลีนที่พบ

หากตัวแปรที่พบมีค่าเป็น true โปรแกรมของเราจะพิมพ์ Parks and Recreation is on Ada’s list of favorite TV shows. ไปที่คอนโซล มิฉะนั้น โปรแกรมของเราพิมพ์ Parks and Recreation is not on Ada’s list of favorite TV shows. ไปที่คอนโซล

บทสรุป

การตรวจสอบว่าอาร์เรย์มีค่าเฉพาะหรือไม่เป็นการดำเนินการทั่วไปใน Java สามวิธีหลักในการตรวจสอบว่าอาร์เรย์มีค่าที่แน่นอนหรือไม่:

  • for-each loop
  • ประกอบด้วย()
  • สตรีม()

บทช่วยสอนนี้กล่าวถึงโดยใช้ตัวอย่าง วิธีตรวจสอบว่าอาร์เรย์ใน Java มีค่าเฉพาะหรือไม่ ตอนนี้คุณมีทักษะที่จำเป็นในการตรวจสอบว่า Java Array มีค่าบางอย่างเช่นนักพัฒนามืออาชีพหรือไม่!