제이온

Java Collections Framework (JCF) คืออะไร? - นิยามและคุณลักษณะของ JCF (JAVA)

สร้าง: 2024-04-27

สร้าง: 2024-04-27 00:42

สวัสดีครับ ผมเจออน

วันนี้เราจะมาดูกันว่า JCF คืออะไร และมีคุณสมบัติอย่างไรบ้าง


JCF คืออะไร?

JCF ย่อมาจาก Java Collections Framework ซึ่งหมายถึงกลุ่มคลาสที่ให้วิธีมาตรฐานในการจัดการข้อมูลจำนวนมากอย่างง่ายและมีประสิทธิภาพ กล่าวคือ เป็นการจัดโครงสร้างข้อมูล (Data Structure) และอัลกอริทึม (Algorithm) ที่ใช้ในการประมวลผลข้อมูล และนำไปใช้เป็นคลาส โดยที่ Collections หมายถึงชุดข้อมูลหรือกลุ่มข้อมูล


Framework กับ Library

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


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


ที่มาของการนำ JCF มาใช้

ก่อนที่จะมีการนำ JCF มาใช้ วิธีการมาตรฐานในการจัดกลุ่ม (Collection) วัตถุในภาษาจาวาคือ Arrays, Vectors และ Hashtables ซึ่ง Collection เหล่านี้ไม่มีอินเทอร์เฟซร่วมกัน ดังนั้น แม้ว่าวัตถุประสงค์ในการใช้ Collection เหล่านี้จะเหมือนกัน แต่ก็จำเป็นต้องกำหนดนิยามแยกกัน นอกจากนี้ แต่ละ Collection ยังมีวิธีการ (Method) ไวยากรณ์ และตัวสร้าง (Constructor) ที่แตกต่างกัน ทำให้ผู้พัฒนาสับสนในการใช้งาน



ดังตัวอย่างโค้ดข้างต้น แม้ว่าวัตถุประสงค์จะเหมือนกันคือการเพิ่มองค์ประกอบและค้นหาองค์ประกอบเพื่อแสดงผล แต่ไวยากรณ์ที่ใช้ก็แตกต่างกัน ตัวอย่างเช่น ในการเพิ่มองค์ประกอบ เวกเตอร์ใช้ addElement() ในขณะที่ Hashtable ใช้ put()


ดังนั้น ผู้พัฒนาภาษาจาวาจึงได้ออกแบบอินเทอร์เฟซร่วมกันเพื่อแก้ปัญหานี้ และนั่นก็คือ Java Collections Framework ที่เราจะมาแนะนำในวันนี้ โปรดทราบว่า หลังจากที่มีการนำ JCF มาใช้ Vector และ Hashtabls กลายเป็นคลาสแบบเก่า (Legacy Class) และไม่ค่อยมีการใช้งานในปัจจุบันแล้ว


ข้อดีของ JCF

(1) สามารถนำโค้ดกลับมาใช้ซ้ำได้ง่าย

(2) ให้การใช้งานโครงสร้างข้อมูลและอัลกอริทึมที่มีประสิทธิภาพสูง ช่วยเพิ่มประสิทธิภาพและคุณภาพของโปรแกรม

(3) ให้ความสามารถในการใช้งานร่วมกันระหว่าง API ที่ไม่เกี่ยวข้องกัน

(4) ลดเวลาในการเรียนรู้และออกแบบ API ใหม่

(5) ส่งเสริมการนำซอฟต์แวร์กลับมาใช้ซ้ำ เนื่องจากโครงสร้างข้อมูลใหม่ที่ใช้ JCF สามารถนำกลับมาใช้ซ้ำได้ และด้วยเหตุผลเดียวกันนี้เอง ทำให้สามารถสร้างอัลกอริทึมใหม่โดยใช้วัตถุที่ใช้ JCF


สรุป

จนถึงตอนนี้ เราได้เรียนรู้ความหมายของ JCF รวมถึงเหตุผลในการนำมาใช้ และข้อดีต่างๆ ของ JCF แล้ว

ในครั้งต่อไป เราจะมาดูโครงสร้างแบบลำดับชั้นของ JCF กัน

ความคิดเห็น0

ยังคงใช้ไลบรารีเชิงฟังก์ชันอยู่หรือไม่แนะนำการเปลี่ยนแปลงของไลบรารีการเขียนโปรแกรมเชิงฟังก์ชันและการถือกำเนิดของ Effect Framework พร้อมทั้งกล่าวถึงความเป็นไปได้ที่จะตั้งมาตรฐานใหม่ในวงการ Node.js
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

July 30, 2024

[สำหรับผู้ไม่ใช่ผู้เชี่ยวชาญ ด้านการพัฒนาซอฟต์แวร์ เพื่อความอยู่รอด] 14. สรุปเนื้อหาสัมภาษณ์ทางเทคนิคที่ผู้พัฒนาซอฟต์แวร์มือใหม่ถามบ่อยสรุปคำถามทางเทคนิคที่มักถามในการสัมภาษณ์งานผู้พัฒนาซอฟต์แวร์มือใหม่ (พื้นที่หน่วยความจำ โครงสร้างข้อมูล ฐานข้อมูล ฯลฯ) หวังว่าจะเป็นประโยชน์ในการเตรียมตัวสัมภาษณ์งานด้านการพัฒนา
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

กฎพื้นฐานของ CSS (Normal flow, BFC, IFC)บทความนี้จะอธิบายเกี่ยวกับกฎพื้นฐานของ CSS อย่าง Normal flow, BFC และ IFC พร้อมทั้งให้ความรู้ที่จำเป็นในการสร้างโครงสร้าง Layout และการออกแบบเว็บไซต์แบบ Responsive
뚠뚠멍의 생각들
뚠뚠멍의 생각들
뚠뚠멍의 생각들
뚠뚠멍의 생각들

September 7, 2024

สร้างเฟรมเวิร์กระดับ DI ด้วย Node.js แม้จะเป็นมือใหม่บทความนี้จะอธิบายวิธีการใช้การอัดฉีดการพึ่งพา (DI) ในการพัฒนาเซิร์ฟเวอร์ Node.js โดยใช้ฟังก์ชัน Reflect Metadata ของคอมไพเลอร์ TypeScript ในการใช้ DI และแนะนำไลบรารีที่เกี่ยวข้อง
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

November 8, 2024

การสร้างแบบจำลองข้อมูลเชิงตรรกะบทความนี้จะอธิบายกระบวนการสร้างแบบจำลองข้อมูลเชิงตรรกะ ซึ่งเป็นการแปลงแบบจำลองข้อมูลเชิงแนวคิดให้เป็นแบบจำลองฐานข้อมูลเชิงสัมพันธ์ ครอบคลุมการจัดการความสัมพันธ์แบบ 1:1, 1:N, N:M และการทำให้เป็นปกติ (1NF, 2NF, 3NF)
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그

April 9, 2024

Flitter เทียบกับ D3.js: ตัวเปลี่ยนเกมสำหรับการแสดงผลข้อมูลบนเว็บFlitter กำลังเป็นทางเลือกแทน D3.js ที่ได้รับความนิยมมากขึ้น เนื่องจากช่วยเพิ่มความสะดวกในการใช้งานและประสิทธิภาพ ทำให้การแสดงผลข้อมูลบนเว็บง่ายขึ้นและมีประสิทธิภาพมากขึ้น
Meursyphus
Meursyphus
Meursyphus
Meursyphus

July 18, 2024