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

Java Array: คู่มือสำหรับผู้เริ่มต้น

ถ้ามีวิธีที่คุณสามารถ declare ตัวแปรเดียวที่จัดเก็บหลายค่าได้ จะเป็นอย่างไร? มีจริง? นั่นดีมาก ใน Java มีคอนเซปต์ชื่อ array ที่ช่วยให้คุณทำได้อย่างแน่นอน คุณสามารถจัดเก็บหลายค่าในตัวแปรเดียว ซึ่งช่วยเก็บโค้ดของคุณให้สะอาดและเรียบร้อย

ในคู่มือนี้ เราจะอภิปรายว่า arrays ทำงานอย่างไร ทำไมจึงถูกใช้ และคุณสามารถ manipulate เนื้อหาของ array ได้อย่างไร เราจะเดินทางผ่านตัวอย่างเล็กน้อยเพื่อแสดงว่าพวกมันทำงานอย่างไร

Array คืออะไร?

Array หรือที่รู้จักในชื่อ list เป็น data structure ที่มี ordered sequence ของ elements คุณสามารถจัดเก็บศูนย์หรือมากกว่า items ใน array แตพวกมันทั้งหมดต้องเป็น type เดียวกัน ตัวอย่างเช่น array อาจจัดเก็บ strings หนึ่งร้อย หรือตัวเลขห้าสิบสอง

Arrays มีประโยชน์เพราะพวกมันช่วยคุณ group คล้ายกัน values เข้าด้วยกัน มาลองพูดว่าคุณกำลัง define array ของชนิดกาแฟ แทนที่จะ declare แต่ละชนิดของกาแฟเป็นตัวแปรของตัวเอง คุณสามารถ group พวกมันเข้าด้วยกันใน array ได้

เมื่อคุณ declare array แล้ว คุณสามารถทำ methods และ operations เหมือนกันบนทุกค่าใน array โดยการ iterate ผ่านมัน

วิธีหนึ่งในการคิดถึง arrays คือเป็น collection ของค่า คุณรู้ to-do list ที่คุณต้องทำให้เสร็จวันนี้? นั่นคล้ายกับ array มีรายการ tasks ที่คุณต้องทำ และแต่ละอันจัดเก็บในลำดับเฉพาะ

การประกาศ Array

การ declare array ใน Java ง่ายมาก ทุกสิ่งที่คุณต้องทำคือเลือกชื่อสำหรับ array ของคุณและระบุ data type นี่คือตัวอย่างการ declare array ชื่อ coffees:

String[] coffees;

โค้ดของเราสร้าง array ชื่อ coffees ด้านซ้าย คุณมี type ของข้อมูลที่จะจัดเก็บใน array ของคุณ คุณยังมีคู่ของ empty brackets นี่บอกโค้ดของคุณว่าคุณต้องการ define array แทนที่จะเป็นแค่ string variable ด้านขวา คุณมีชื่อของ variable

81% ของผู้เข้าร่วมระบุว่ารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสงานทางเทคโนโลยีหลังจากเข้าร่วมบูทแคมป์ ได้รับการจับคู่กับบูทแคมป์วันนี้

นักศึกษาจบบูทแคมป์เฉลี่ยใช้เวลาน้อยกว่า 6 เดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มบูทแคมป์จนหางานแรก

เรายังไม่เสร็จสิ้น เมื่อคุณ declare array คุณต้องบอกโปรแกรมของคุณว่าคุณต้องการให้ array จัดเก็บ items กี่ชิ้น นี่อนุญาตให้ Java allocate memory ที่จำเป็นเพื่อจัดเก็บค่าใน array ของคุณ

เราต้องการให้ array coffees ของเราจัดเก็บสาม blend โปรดของเราที่ร้านท้องถิ่น เพื่อทำเช่นนี้ เราจะบอกโปรแกรมของเราว่าจำนวน elements ที่ array ของเราควรจัดเก็บได้คือสาม:

coffees = new String[3];

นี่จะสร้างสามค่าว่างที่สามารถเติมใน array ของเราได้

ให้แน่ใจว่าคุณคิดถึงจำนวนค่าที่คุณต้องการจัดเก็บใน array ของคุณ สำคัญที่จะต้องทราบว่าหากคุณ define ขนาดของ array variable แล้ว จะไม่สามารถเปลี่ยนแปลงได้

เราสามารถบีบโค้ดของเราลงในบรรทัดเดียวที่เราทั้ง declare array และ allocate memory:

String[] coffees = new String[4];

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

ในกรณีนี้ array ของเราจะจัดเก็บค่า string อย่างไรก็ตาม คุณสามารถ declare array of integers, array of objects, array of arrays หรือ array จัดเก็บ data type อื่นได้เช่นกัน

การ Initialize Array

เรายังไม่เสร็จสิ้นกับการตั้งค่า array ของเรา จนถึงตอนนี้ เรา declare standard array ปัญหาคือมันไม่จัดเก็บค่าใดๆ syntax สำหรับกำหนดชุดค่าเริ่มต้นให้ array ในขณะ declare variable คือ:

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

ในตัวอย่างนี้ เรา assign สามค่าให้ array ของเรา

การเข้าถึง Elements ใน Array

ความงามของ arrays คือพวกมันเข้าถึงง่าย ทางเปรียบเทียบ มันเหมือนกับการวงกลม item บน to-do list ของคุณที่คุณต้องการโฟกัส

ภายใน array ทุก item ได้รับหมายเลขพิเศษของตัวเอง เรียกว่า index numbers Index numbers เริ่มที่ตัวเลข 0 และเพิ่มขึ้น 1 สำหรับแต่ละ item ใน array ของคุณ พิจารณารายการต่อไปนี้:

  • 0: Rwanda Izuba
  • 1: French Roast
  • 2: Vietnam Da Lat Arabica

ในรายการนี้ Rwanda Izuba blend จะมี index value 0 French Roast blend จะมี index value 1 และ Vietnam Da Lat Arabica blend จะมี index value 2 มาใช้ array ต่อไปนี้:

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

หากคุณต้องการเข้าถึง item แรกใน array นี้ คุณสามารถใช้โค้ดนี้:

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

โค้ดของเราคืนค่า: Rwanda Izuba

Index value ถูกส่งเข้า array ของคุณระหว่าง square brackets ช่วงของตัวเลขที่มีอยู่เป็น index values คือระหว่าง 0 และหนึ่งน้อยกว่าความยาวของ array ของคุณ นี่เป็นเพราะ เรากล่าวไปก่อนหน้านี้ arrays ถูก indexed จากค่า 0

หากคุณพยายามเข้าถึง index value ที่ไม่มีอยู่ error จะถูกคืน:

ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3

ในกรณีนี้ เราพยายามเข้าถึง index value 3 ใน array ของเรา เพราะ index values ของเราไปได้แค่สอง — จำไว้ arrays indexed เริ่มจาก 0 — error จึงถูกคืน

มาขยับขึ้นอีกระดับ สมมติว่าคุณต้องการผ่านทุก item ใน array ของคุณและทำ operation บนพวกมันแยกกัน เราจะพิมพ์ทุก item ใน array ของเราไปที่ console คุณสามารถทำได้โดยใช้ 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

ในตัวอย่างนี้ โค้ดของเรา iterate ผ่านทุก item ใน array coffees ของเราและพิมพ์แต่ละ item ไปที่ console เราใช้ for-each loop แทน "for" loop เพราะมันไม่ต้องการ counter ซึ่งหมายความว่ามันกระชับและอ่านง่ายกว่า

การเปลี่ยน Items ใน Array

Houston, we have a problem ระบุว่า French blend โปรดของเราไม่ได้ชื่อ French Roast จริงๆ มันชื่อ French Classic หากเราต้องการเปลี่ยนนี้ เราสามารถใช้ indexing

พิจารณาโค้ดต่อไปนี้:

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]); } }

เราใช้ assignment operator (=) เพื่อเปลี่ยนค่าของกาแฟของเราที่มีอยู่ที่ index position 1 เราเปลี่ยนค่ามันจาก French Roast เป็น French Classic โค้ดของเราคืนค่า: French Classic

Java Array: ตัวอย่าง

มารวมคอนเซปต์ทั้งหมดที่เราอภิปรายไว้ในตัวอย่างหนึ่ง มาพูดว่าคุณต้องการคำนวณว่าคุณใช้จ่ายไปกับกาแฟรวมเท่าไหร่ในสัปดาห์ที่ผ่านมา

ก่อนอื่น เราจะตั้งค่า class และ variables สำหรับโปรแกรมของเรา:

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

เรา declare สองตัวแปร ตัวแปรหนึ่งจัดเก็บรายการ purchases ของเรา ตัวแปรถัดไปจัดเก็บ counter ของจำนวนที่เราใช้จ่ายไปกับกาแฟ ขั้นตอนต่อไปคือสร้าง for-each loop ที่ loop ผ่านทุก coffee purchase และเพิ่มมันเข้าตัวแปร "sum" ของเรา:

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

หากเรา run โค้ดของเรา โปรแกรมของเราจะคำนวณจำนวนเงินรวมที่เราใช้จ่ายกับกาแฟในสัปดาห์ที่ผ่านมา มีปัญหาเพียงอย่างเดียว: โปรแกรมของเราไม่บอกเราว่าค่านั้นคืออะไร! เราสามารถ retrieve ค่าได้โดยพิมพ์มันไปที่ console:

เมื่อเรา run โค้ดทั้งหมดนี้ร่วมกัน ต่อไปนี้จะถูกคืน:

You've spent $11.34 on coffee in the last week. $11.34 on coffee. Not bad! What a useful program.



สรุป (และ Challenge)

Arrays เป็นประเภทข้อมูลที่สามารถจัดเก็บ multiple values ของ data type เดียวกัน คุณสามารถ declare array สำหรับอะไรก็ได้ เช่น รายการหนังสือโปรดของคุณ รายการผู้เล่นในเกม หรือรายการตัวเลขที่คุณต้องการคำนวณค่าเฉลี่ย

คุณมองหา challenge อยู่ไหม? อ่านต่อ

เขียนโปรแกรมที่ขอให้ผู้ใช้เลือก travel destination เพื่อค้นหาข้อมูลเพิ่มเติม คุณควรจัดเก็บ travel destinations ใน array คุณควรจัดเก็บคำอธิบายประโยคเดียวของแต่ละ destination ใน array แยก

เมื่อผู้ใช้เลือก travel destination หามันใน array travel destinations ของคุณ และคำนวณ index number ของมัน จากนั้น ใช้ index number นั้นพิมพ์คำอธิบายประโยคเดียวของ destination ที่ตรงกันไปที่ console

ตอนนี้คุณพร้อมที่จะเริ่มใช้ arrays ใน Java อย่างมืออาชีพแล้ว!