ฉันเคยเห็นคำพูดที่พูดเกินจริงว่า "คนที่ไม่ได้อ่านซอร์สโค้ด JDK ไม่ได้รับการพิจารณาว่าได้เรียนรู้ Java" เริ่มอ่านซอร์สโค้ดอย่างเข้มข้นตั้งแต่วันนี้ ซอร์สโค้ดที่เหมาะสำหรับการอ่านอย่างเข้มข้นไม่มีอะไรมากไปกว่าคลาสที่บรรจุโดย java.io, .util และ. lang
ยังมีการสอบมากมายเกี่ยวกับชุดในคำถามสัมภาษณ์ดังนั้นฉันจะเริ่มต้นด้วยซอร์สโค้ดของชุด
(1) ก่อนอื่นอินเทอร์เฟซคอลเลกชัน
คอลเลกชันเป็นอินเทอร์เฟซรูทของคลาสคอลเลกชันทั้งหมด คอลเลกชันสืบทอดการวนซ้ำนั่นคือคลาสทั้งหมดในคอลเลกชันสามารถใช้วิธี foreach
/*** คอลเลกชันเป็นอินเทอร์เฟซรูทของคลาสคอลเลกชันทั้งหมด * คอลเลกชันสืบทอดการวนซ้ำนั่นคือคลาสทั้งหมดในคอลเลกชันสามารถใช้วิธี foreach * @author wgs * @param <e> */คอลเลกชันอินเตอร์เฟสสาธารณะ <e> ขยาย iterable <e> {// ส่งคืนขนาดขององค์ประกอบในคอลเลกชัน (ถ้าค่าขนาดนี้เกินจำนวนเต็ม max_value มันจะส่งคืนจำนวนเต็มโดยตรง. max_value) ขนาด int (); // ตัดสินว่าชุดนั้นเป็นบูลีนว่างเปล่า (); // ตัดสินว่าชุดนั้นมีองค์ประกอบหรือไม่ คำสั่งซื้อ) ตัววนซ้ำ <e> iterator (); // ส่งคืนองค์ประกอบทั้งหมดในชุดในรูปแบบของอาร์เรย์และอาร์เรย์เป็นวัตถุที่ปลอดภัย [] toarray (); // ส่งคืนองค์ประกอบที่ตั้งไว้ของประเภทอาร์เรย์ที่ระบุในรูปแบบของอาร์เรย์หรือไม่ ใช่ -False, No -true (วิธีนี้มักเรียกว่าในชุด, แผนที่ซึ่งมีประโยชน์มากในคำถามการเขียนโปรแกรม) บูลีนเพิ่ม (e e); // ลบองค์ประกอบที่ระบุออกจากชุดบูลีนลบ (วัตถุ o); // ใช้เพื่อตรวจสอบว่าบูลีนองค์ประกอบของคอลเลกชัน องค์ประกอบเดียวกับชุดที่ระบุ (นั่นคือลบส่วนสี่แยกของสองชุด) บูลีน RemoveAll (คอลเลกชัน <?> c); // ลบองค์ประกอบทั้งหมดในชุดที่ระบุ (นั่นคือลบส่วนจุดตัดของทั้งสองชุด) BOOLEAN MROLLECTION ชุดที่ระบุ (นั่นคือลบส่วนตัดของทั้งสองชุด) บูลีน RemoveAll (คอลเลกชัน <?> c); // เก็บองค์ประกอบเดียวกันกับในชุดที่ระบุ (นั่นคือลบองค์ประกอบที่แตกต่างจากชุดที่ระบุ) บูลีน retainall (คอลเลกชัน <?> c); // ค่าของชุด int int hashCode ();}สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับคำอธิบายโดยละเอียดของคอลเลกชันการอ่านซอร์สโค้ด JDK ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!