กรอบงาน Java Collections ใช้สำหรับจัดเก็บและจัดการกลุ่มข้อมูล เป็นโครงสร้างข้อมูลในหน่วยความจำและทุกองค์ประกอบในคอลเล็กชันควรได้รับการคำนวณก่อนจึงจะสามารถเพิ่มลงในคอลเล็กชันได้
Stream API ใช้สำหรับการประมวลผลกลุ่มข้อมูลเท่านั้น ไม่แก้ไขคอลเลกชันจริง แต่ให้ผลลัพธ์ตามวิธีการไปป์ไลน์เท่านั้น
| ซีเนียร์ เลขที่ | คีย์ | คอลเลกชัน | สตรีม |
|---|---|---|---|
| 1 | พื้นฐาน | ใช้สำหรับจัดเก็บและจัดการกลุ่มข้อมูล | Stream API ใช้สำหรับประมวลผลกลุ่มข้อมูลเท่านั้น |
| 2 | แพ็คเกจ | คลาสและอินเทอร์เฟซทั้งหมดของ API นี้อยู่ใน Java.util package | คลาสและอินเทอร์เฟซทั้งหมดของ API นี้อยู่ในแพ็คเกจ java.util.stream |
| 3 | กระตือรือร้น/ขี้เกียจ | องค์ประกอบทั้งหมดในคอลเล็กชันจะถูกคำนวณในตอนเริ่มต้น | ในสตรีม การดำเนินการระดับกลางนั้นขี้เกียจ |
| 4. | การปรับเปลี่ยนข้อมูล | ในคอลเลกชัน เราสามารถลบหรือเพิ่มองค์ประกอบได้ | เราไม่สามารถแก้ไขสตรีมได้ |
| 5 | External /Internal iterator | คอลเลคชันดำเนินการวนซ้ำในคอลเล็กชัน | สตรีมดำเนินการวนซ้ำภายใน |
ตัวอย่างคอลเลกชั่น
public class CollectiosExample {
public static void main(String[] args) {
List<String> laptopList = new ArrayList<>();
laptopList.add("HCL");
laptopList.add("Apple");
laptopList.add("Dell");
Comparator<String> com = (String o1, String o2)->o1.compareTo(o2);
Collections.sort(laptopList,com);
for (String name : laptopList) {
System.out.println(name);
}
}
} ตัวอย่างสตรีม
public class StreamsExample {
public static void main(String[] args) {
List<String> laptopList = new ArrayList<>();
laptopList.add("HCL");
laptopList.add("Apple");
laptopList.add("Dell");
laptopList.stream().sorted().forEach(System.out::println);
}
}