ถึงแม้ภาษาจาวาจะมีอาเรย์ (array) มาให้เราใช้งานเพื่อจัดเก็บค่าหรือออบเจกต์ประเภทเดียวกันหลายรายการไว้ด้วยกัน แต่อาเรย์จะเริ่มต้นด้วยขนาดที่กำหนดไว้ล่วงหน้าในขั้นตอนการประกาศอาเรย์ ขนาดของอาเรย์ไม่สามารถเปลี่ยนแปลงได้ในอนาคต ทำให้มีข้อจำกัดในการใช้งาน หากเราต้องการจัดเก็บข้อมูลเพิ่มเติม เราจำเป็นต้องสร้างอาเรย์ใหม่ที่ใหญ่ขึ้นกว่าเดิม แล้วคัดลอกข้อมูลจากอาเรย์เดิมเอง จึงมีการพัฒนาการเก็บข้อมูลที่เรียกว่า collections framewoek ซึ่งเป็นรูปแบบการเก็บข้อมูลที่ยืดหยุ่น และมีเครื่องมือในการจัดการมาให้มากมาย
collections framework เป็นแนวทางในการสร้างคลาสเพื่อรองรับการจัดเก็บและจัดการชุดข้อมูลโดยมีรูปแบบการเก็บข้อมูลในแบบอาเรย์และในแบบอื่นๆ เช่น Set List Queue Deque และ Map ให้เราเลือกใช้ได้ตามความเหมาะสมกับงานของเรา ที่สำคัญคือรูปแบบการเก็บข้อมูลทั้งหมดที่มีให้ใช้สามารถขยายขนาดได้เองตามจำนวนข้อมูลที่เก็บ โครงสร้างของการเก็บข้อมูลจะแยกออกเป็นคลาสต่างๆที่มาพร้อมกับเมธอดซึ่งจะเป็นชื่อเดียวกันเกือบทั้งหมดสำหรับแต่ละชนิดของโครงสร้างข้อมูลเพราะมีการกำหนดเป็น framework ไว้แล้ว คลาสเหล่านี้เป็น generic นั่นหมายความว่าเราใช้เก็บข้อมูลอะไรก็ได้ตราบเท่าที่ชนิดข้อมูลเป็น reference type
ตัวอย่างด้านล่างเป็นการใช้คลาส ArrayList ซึ่งคล้ายกับการใช้งานอาเรย์แต่มีความยืดหยุ่นในการใช้งานมากกว่าและมีประสิทธิภาพในการดำเนินการ เช่น จัดเรียงข้อมูล ค้นหาข้อมูล สูงกว่า
ArrayList<String> list = new ArrayList<>();
list.add(“first”);
list.add(“second”);
list.add(“third”);
System.out.println(list); // [first, second, third]
System.out.println(list.get(0)); // first
System.out.println(list.get(1)); // second
System.out.println(list.get(2)); // third
list.remove(“first”);
System.out.println(list); // [second, third]
System.out.println(list.size()); // 2
นอกจาก collections มาตรฐานที่มีให้ใช้ใน Java API แล้ว เรายังสามารถเลือกใช้แบบอื่นๆจากผู้พัฒนาอื่นๆได้ เช่น Guava Collections ที่พัฒนาโดย Google
เรียนจาวาพื้นฐานได้จาก https://marupatnote.home.blog/2020/10/01/javatoc/ หรือศึกษาเพิ่มเติมเรื่อง java collection framework ได้จาก https://marupatnote.home.blog/2022/05/17/java-collection-framework/