คุณสามารถรับเคล็ดลับบางอย่างในการรวบรวมผ่านบทความนี้
มี สองวิธีสำหรับ Java ใน การสำรวจคอลเล็กชัน หนึ่งคือ for-loop พื้นฐานที่สุด และอีกอันหนึ่งคือ for-each ที่แนะนำโดย jdk5 ด้วยวิธีนี้ เราสามารถสำรวจอาร์เรย์และคอลเล็กชันได้สะดวกยิ่งขึ้น แต่คุณเคยคิดเกี่ยวกับสองวิธีนี้หรือไม่? อันไหนมีประสิทธิภาพมากกว่าในการสำรวจคอลเล็กชัน
Foreachไม่ใช่ไวยากรณ์ใหม่ แต่เป็นน้ำตาลไวยากรณ์ของ Java ในเวลาคอมไพล์ คอมไพเลอร์จะแปลงโค้ดนี้เป็น การนำ iteratorไปใช้งาน และคอมไพล์เป็น bytecode เราสามารถถอดรหัสโค้ดที่คอมไพล์ต่อไปนี้ได้โดยการรันคำสั่งjavap -verbose Testforeach
bytecodeรายละเอียดที่ได้รับมีดังนี้:
ความหมายทั่วไปของ bytecode นี้คือการใช้getfieldคำสั่งเพื่อรับตัวแปรintegersและเรียกใช้List.iteratorเพื่อรับอินสแตนซ์ iteratorและเรียกiterator.hasNextใช้ หากคืนค่าเป็น จริง ให้เรียกiterator.nextใช้เมธอด ดูสิ นี่คือตรรกะการใช้งานสำหรับผู้วนซ้ำเพื่อสำรวจคอลเล็กชัน
ตอนนี้ ลองใช้วิธี for-loop และวิธีfor-eachเพื่อทดสอบกัน
นี่คือผลการทดสอบ
อย่างที่คุณเห็นผลลัพธ์นั้นชัดเจน สำหรับArrayListประสิทธิภาพของการใช้เมธอด for-loop นั้นดีกว่าวิธี for-each เราสามารถประกาศชัยชนะ for-loop ได้หรือไม่? คำตอบคือไม่ ในการวัดประสิทธิภาพครั้งต่อไป เราเปลี่ยน ArrayList เป็น LinkedList
อีกครั้ง นี่คือผลการทดสอบ
ผู้เริ่มต้นบางคนอาจสงสัยว่าเหตุใดArrayList จึง เคลื่อนที่เร็วขึ้นโดยใช้วิธี for loop และLinkedListช้ากว่าและช้ามาก สิ่งนี้กำหนดโดย โครงสร้าง ข้อมูลArrayList และ LinkedList
เลเยอร์ต้นแบบ ArrayList ใช้อาร์เรย์ในการจัดเก็บองค์ประกอบ อาร์เรย์เป็นพื้นที่หน่วยความจำที่ต่อเนื่องกัน สามารถรับข้อมูลผ่านดัชนี ความซับซ้อนของเวลาคือ O(1) ดังนั้นมันจึงเร็ว
เลเยอร์พื้นฐานของ LinkedList เป็นรายการที่เชื่อมโยงแบบสองทาง ใช้ for-loop เพื่อใช้งานการข้ามผ่าน คุณต้องเริ่มจากโหนดส่วนหัวของรายการที่เชื่อมโยงทุกครั้ง ความซับซ้อนของเวลาคือ O (n*n)
ในโลกที่เปลี่ยนแปลงอย่างรวดเร็วและการแข่งขันในปัจจุบัน อาชีพของคนๆ หนึ่งมีบทบาทสำคัญในการเติบโตส่วนบุคคล ความมั่นคงทางการเงิน และความพึงพอใจในชีวิตโดยรวม อย่างไรก็ตาม ผู้คนจำนวนมากพบว่าตัวเองติดอยู่ในวงจรของความเมื่อยล้าและความไม่พอใจอย่างไม่หยุดยั้ง ค่อยๆ สูญเสียชีวิตการทำงานไป
(คำเตือน- นี่คือการเสียดสี ตั้งใจที่จะทำลายล้างอย่างสนุกสนาน- ไม่เหมาะสำหรับเด็กอย่างแน่นอน) คุณเคยเห็นพ่อกับแม่ของคุณซ่อนตัวอยู่ในครัวและสูบบุหรี่ที่มีกลิ่นเหม็นเหล่านั้น พวกเขาบอกคุณ
บทนำ:ยินดีต้อนรับ ผู้อ่านผู้กล้าหาญ สู่การเดินทางที่จะพาเราไปสู่ความลึกที่มืดมนที่สุดบนโลกใบนี้ ในบล็อกนี้ เราเจาะลึกโลกอันน่าพิศวงของร่องลึกบาดาลมาเรียนา เปิดเผยความลับที่ซ่อนอยู่ และเปิดเผยความจริงอันน่าสะพรึงกลัวที่อยู่ใต้พื้นผิวของมัน
เช้าวันนี้เป็นสีทองอร่ามบนเนินเขาทางทิศตะวันตก เมื่อแสงแรกของแสงแดดส่องให้เห็นหญ้าที่ปกคลุมด้วยน้ำค้างแข็งบนที่ราบ ฝูงวัวแองกัสที่สงบนิ่ง ตัวสีดำสนิทและตัวมหึมา มีเงาสะท้อนยามพระอาทิตย์ขึ้นขณะที่พวกมันเดินไปตามทางที่ไม่ค่อยมีใครรู้จักไปยังสถานที่ที่พวกเขารู้จักดี บาร์อาหารเช้า
[ทริกเกอร์การแจ้งเตือน: บทความนี้รวมถึงภาพหน้าจอของผู้คนที่ยกย่องฆาตกรจอร์แดน นีลี] ในที่สุดเจ้าหน้าที่บังคับใช้กฎหมายก็ได้ตั้งข้อหาแดเนียล เพนนี ชายผู้บีบคอจอร์แดน นีลีจนเสียชีวิตในข้อหาฆาตกรรมครั้งนั้น และอาจไม่เต็มใจนัก