จะเกิดอะไรขึ้นหากมีวิธีที่คุณสามารถประกาศตัวแปรหนึ่งตัวที่เก็บหลายค่าได้ มี? เยี่ยมมาก ใน Java มีแนวคิดที่เรียกว่าอาร์เรย์ที่ช่วยให้คุณทำสิ่งนี้ได้อย่างแท้จริง คุณสามารถเก็บค่าหลายค่าไว้ในตัวแปรเดียว ซึ่งช่วยให้โค้ดของคุณสะอาดและเป็นระเบียบ
ในคู่มือนี้ เราจะพูดถึงวิธีการทำงานของอาร์เรย์ เหตุผลที่ใช้ และวิธีที่คุณสามารถจัดการเนื้อหาของอาร์เรย์ เราจะพูดถึงตัวอย่างบางส่วนเพื่อแสดงวิธีการทำงาน
อาร์เรย์คืออะไร
อาร์เรย์หรือที่เรียกว่ารายการคือโครงสร้างข้อมูลที่มีลำดับขององค์ประกอบ คุณสามารถจัดเก็บรายการตั้งแต่ศูนย์ขึ้นไปในอาร์เรย์ได้ แต่รายการทั้งหมดต้องเป็นประเภทเดียวกัน ตัวอย่างเช่น อาร์เรย์สามารถเก็บหนึ่งร้อยสตริงหรือห้าสิบสองตัวเลข
อาร์เรย์มีประโยชน์เพราะช่วยให้คุณจัดกลุ่มค่าที่คล้ายกันไว้ด้วยกัน สมมติว่าคุณกำลังกำหนดประเภทกาแฟหลายประเภท แทนที่จะประกาศกาแฟแต่ละประเภทเป็นตัวแปรในตัวเอง คุณสามารถจัดกลุ่มกาแฟแต่ละประเภทเข้าด้วยกันเป็นอาร์เรย์ได้
เมื่อคุณประกาศอาร์เรย์แล้ว คุณสามารถใช้วิธีการและการดำเนินการเดียวกันกับทุกค่าในอาร์เรย์ได้โดยการวนซ้ำ
วิธีหนึ่งในการคิดเกี่ยวกับอาร์เรย์คือการรวบรวมค่าต่างๆ คุณรู้หรือไม่ว่ารายการสิ่งที่ต้องทำที่คุณต้องทำในวันนี้? ที่คล้ายกับอาร์เรย์ มีรายการงานที่คุณต้องทำ และแต่ละงานจะถูกจัดเก็บไว้ในลำดับเฉพาะ
การประกาศอาร์เรย์
การประกาศอาร์เรย์ใน Java เป็นเรื่องง่าย สิ่งที่คุณต้องทำคือเลือกชื่อสำหรับอาร์เรย์ของคุณและระบุประเภทข้อมูล นี่คือตัวอย่างการประกาศอาร์เรย์ชื่อ coffees
:
String[] coffees;
รหัสของเราสร้างอาร์เรย์ที่เรียกว่า coffees
. ทางด้านซ้าย คุณมีประเภทของข้อมูลที่จะจัดเก็บไว้ในอาร์เรย์ของคุณ คุณยังมีวงเล็บเปล่าคู่หนึ่ง ซึ่งจะบอกคุณโค้ดว่าคุณต้องการกำหนดอาร์เรย์ ไม่ใช่แค่ตัวแปรสตริง ทางด้านขวา คุณมีชื่อของตัวแปร
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
เรายังทำไม่เสร็จ เมื่อคุณประกาศอาร์เรย์ คุณต้องบอกโปรแกรมของคุณว่าต้องการให้อาร์เรย์มีกี่รายการ ซึ่งช่วยให้ Java สามารถจัดสรรหน่วยความจำที่จำเป็นในการจัดเก็บค่าในอาร์เรย์ของคุณ
เราต้องการ coffees
. ของเรา เพื่อเก็บสามส่วนผสมที่เราชื่นชอบที่ร้านค้าในพื้นที่ของเรา ในการทำเช่นนี้ เราจะบอกโปรแกรมของเราว่าจำนวนองค์ประกอบที่อาร์เรย์ของเราสามารถเก็บได้คือสาม:
coffees = new String[3];
สิ่งนี้จะสร้างค่าว่างสามค่าซึ่งสามารถเติมลงในอาร์เรย์ของเราได้
ตรวจสอบให้แน่ใจว่าคุณคิดเกี่ยวกับจำนวนค่าที่คุณต้องการเก็บไว้ในอาร์เรย์ของคุณ สิ่งสำคัญที่ควรทราบคือเมื่อคุณกำหนดขนาดของตัวแปรอาร์เรย์แล้ว จะไม่สามารถเปลี่ยนแปลงได้
เราสามารถบีบอัดโค้ดของเราลงในบรรทัดเดียวโดยที่เราทั้งคู่ประกาศอาร์เรย์และจัดสรรหน่วยความจำ:
String[] coffees = new String[4];
นี่เป็นวิธีที่ดีที่สุดในการประกาศอาร์เรย์เพราะกระชับและเรียบง่าย โอกาสเดียวที่วิธีนี้ใช้ไม่ได้ผลคือเมื่อคุณไม่แน่ใจว่าจะเก็บค่ากี่ค่าในอาร์เรย์ของคุณ หากเป็นกรณีนี้ คุณอาจต้องการประกาศอาร์เรย์ก่อน จากนั้นจึงจัดสรรหน่วยความจำเมื่อโปรแกรมของคุณทราบจำนวนค่าที่จะจัดเก็บ
ในกรณีนี้ อาร์เรย์ของเราจะเก็บค่าสตริงไว้ อย่างไรก็ตาม คุณยังสามารถประกาศอาร์เรย์ของจำนวนเต็ม อาร์เรย์ของอ็อบเจ็กต์ อาร์เรย์ของอาร์เรย์ หรืออาร์เรย์ที่มีข้อมูลประเภทอื่นได้
การเริ่มต้นอาร์เรย์
เรายังไม่เสร็จสิ้นในการตั้งค่าอาร์เรย์ของเรา จนถึงตอนนี้ เราได้ประกาศอาร์เรย์มาตรฐานแล้ว ปัญหาคือยังไม่มีค่าใดๆ ไวยากรณ์สำหรับการกำหนดชุดของค่าเริ่มต้นให้กับอาร์เรย์ในขณะที่ประกาศตัวแปรคือ:
String[] coffees = { "Rwanda Izuba", "French Roast", "Vietnam Da La Arabica" };
ในตัวอย่างนี้ เราได้กำหนดค่าสามค่าให้กับอาร์เรย์ของเรา
การเข้าถึงองค์ประกอบในอาร์เรย์
ความงามของอาร์เรย์คือเข้าถึงได้ง่าย เปรียบเสมือนการวนรอบรายการในรายการสิ่งที่ต้องทำที่คุณต้องการเน้น
ภายในอาร์เรย์ ทุกรายการจะมีหมายเลขพิเศษของตัวเอง เหล่านี้เรียกว่าหมายเลขดัชนี หมายเลขดัชนีเริ่มต้นที่หมายเลข 0 และเพิ่มขึ้น 1 สำหรับแต่ละรายการในอาร์เรย์ของคุณ พิจารณารายการต่อไปนี้:
- 0:รวันดา อิซูบา
- 1:เฟรนช์โรสต์
- 2:เวียดนามดาลัดอาราบิก้า
ในรายการนี้ การผสมผสานของ Rwanda Izuba จะมีค่าดัชนีเป็น 0 ส่วนผสมของ French Roast จะมีค่าดัชนี 1 และการผสมผสานของ Vietnam Da Lat อาราบิก้าจะมีค่าดัชนีเป็น 2 ลองใช้อาร์เรย์ต่อไปนี้:
String[] coffees = { "Rwanda Izuba", "French Roast", "Vietnam Da La Arabica" };
หากคุณต้องการเข้าถึงรายการแรกในอาร์เรย์นี้ คุณสามารถใช้รหัสนี้:
System.out.println(coffees[0]);
รหัสของเราส่งคืน:Rwanda Izuba
ค่าดัชนีจะถูกส่งไปยังอาร์เรย์ของคุณระหว่างวงเล็บเหลี่ยม ช่วงของตัวเลขที่เป็นค่าดัชนีอยู่ระหว่าง 0 ถึง 1 น้อยกว่าความยาวของอาร์เรย์ของคุณ นี่เป็นเพราะอย่างที่เราได้กล่าวไว้ก่อนหน้านี้ อาร์เรย์ถูกสร้างดัชนีจากค่า 0
หากคุณพยายามเข้าถึงค่าดัชนีที่ไม่มีอยู่ ข้อผิดพลาดจะถูกส่งคืน:
ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
ในกรณีนี้ เราพยายามเข้าถึงค่าดัชนี 3 ในอาร์เรย์ของเรา เนื่องจากค่าดัชนีของเราเพิ่มขึ้นถึงสองเท่านั้น โปรดจำไว้ว่า อาร์เรย์จะได้รับการจัดทำดัชนีโดยเริ่มจาก 0 ซึ่งจะมีการแสดงข้อผิดพลาด
มาดูกันดีกว่า สมมติว่าคุณต้องการดูทุกรายการในอาร์เรย์ของคุณและดำเนินการกับแต่ละรายการ เราจะพิมพ์ทุกรายการในอาร์เรย์ของเราไปที่คอนโซล คุณสามารถทำได้โดยใช้ for-each loop ดังนี้:
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); } } }
รหัสของเราส่งคืน:
Rwanda Izuba French Roast Vietnam Da La Arabica
ในตัวอย่างนี้ โค้ดของเราจะวนซ้ำทุกรายการใน coffees
อาร์เรย์และพิมพ์แต่ละรายการไปยังคอนโซล เราใช้ลูป for-each แทนลูป "for" เพราะไม่ต้องใช้ตัวนับ ซึ่งหมายความว่าจะกระชับและอ่านง่ายขึ้น
การเปลี่ยนรายการในอาร์เรย์
ฮูสตันพวกเรามีปัญหา. ปรากฎว่าการผสมผสานแบบฝรั่งเศสที่เราโปรดปรานไม่ได้เรียกว่า French Roast เรียกว่า French Classic หากเราต้องการเปลี่ยนสิ่งนี้ เราสามารถใช้การจัดทำดัชนี
พิจารณารหัสต่อไปนี้:
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]); } }
เราใช้ตัวดำเนินการมอบหมาย (=) เพื่อเปลี่ยนมูลค่าของกาแฟของเราซึ่งอยู่ที่ตำแหน่งดัชนี 1 เราได้เปลี่ยนค่าจาก French Roast
ถึง French Classic
. รหัสของเราส่งคืน:French Classic
Java Array:ตัวอย่าง
มารวมแนวคิดทั้งหมดที่เราได้พูดคุยกันไว้ในตัวอย่างเดียว สมมติว่าเราต้องการคำนวณว่าเราได้ใช้จ่ายไปกับกาแฟทั้งหมดในช่วงสัปดาห์ที่ผ่านมา
อันดับแรก เราจะตั้งค่าคลาสและตัวแปรสำหรับโปรแกรมของเรา:
class CoffeePrices { public static void main(String[] args) { Double[] purchases = {2.55, 2.75, 2.99, 3.05}; double sum = 0; } }
เราได้ประกาศตัวแปรสองตัว ตัวแปรหนึ่งเก็บรายการซื้อของเรา ตัวแปรถัดไปเป็นตัวนับว่าเราเสียค่ากาแฟไปเท่าไรแล้ว ขั้นตอนต่อไปของเราคือการสร้าง for-each loop ซึ่งวนรอบการซื้อกาแฟทุกครั้งและเพิ่มลงในตัวแปร "sum" ของเรา:
for (double purchase : purchases) { sum += purchase; }
หากเรารันโค้ดของเรา โปรแกรมของเราจะคำนวณจำนวนเงินทั้งหมดที่เราใช้ไปกับกาแฟในสัปดาห์ที่แล้ว มีเพียงปัญหาเดียวคือ โปรแกรมของเราไม่ได้บอกเราว่าค่านั้นคืออะไร! เราสามารถดึงค่าโดยพิมพ์ออกมาที่คอนโซล:
เมื่อเรารันโค้ดทั้งหมดนี้ร่วมกัน ค่าต่อไปนี้จะถูกส่งกลับ:
You've spent $11.34 on coffee in the last week. $11.34 on coffee. Not bad! What a useful program.
บทสรุป (และความท้าทาย)
อาร์เรย์เป็นข้อมูลประเภทหนึ่งที่สามารถเก็บค่าต่างๆ ของประเภทข้อมูลเดียวกันได้หลายค่า คุณสามารถประกาศอาร์เรย์สำหรับอะไรก็ได้ เช่น รายชื่อหนังสือเล่มโปรด รายชื่อผู้เล่นในเกม หรือรายการตัวเลขที่คุณต้องการคำนวณค่าเฉลี่ย
คุณกำลังมองหาสิ่งที่ท้าทาย? อ่านต่อ.
เขียนโปรแกรมที่ขอให้ผู้ใช้เลือกสถานที่ท่องเที่ยวเพื่อหาข้อมูลเพิ่มเติม คุณควรจัดเก็บสถานที่ท่องเที่ยวในอาร์เรย์ คุณควรเก็บคำอธิบายหนึ่งประโยคของแต่ละปลายทางไว้ในอาร์เรย์ที่แยกจากกัน
เมื่อผู้ใช้เลือกปลายทางการเดินทาง ให้ค้นหาในอาร์เรย์ของจุดหมายการเดินทาง แล้วคำนวณหมายเลขดัชนี จากนั้น ใช้หมายเลขดัชนีนั้นเพื่อพิมพ์คำอธิบายหนึ่งประโยคของปลายทางที่เกี่ยวข้องไปยังคอนโซล
ตอนนี้คุณพร้อมที่จะเริ่มใช้อาร์เรย์ใน Java อย่างมืออาชีพแล้ว!