190 likes | 272 Views
Chapter 12. Collection Class A little data structure. Package java.util.
E N D
Chapter 12 Collection Class A little data structure
Package java.util • Collection คือวิธีการรวมวัตถุไว้ด้วยกันเป็นกลุ่ม โดยสามารถอ้างถึงเพื่อการใช้งาน และสามารถเพิ่มหรือลดวัตถุใน Collection ได้ กล่าวถึงคำว่า Collection ผู้อ่านอาจนึกถึงคำว่า สะสม เช่น การสะสมแสตมป์ หรือ การสะสมวัตถุโบราณ เป็นต้น เช่นเดียวกัน ในภาษา Java คำว่า Collection หมายถึงการสะสมวัตถุให้อยู่รวมกัน เพื่อสะดวกในการค้นหา เพิ่ม หรือ ลบ วัตถุ
Set and List • HashSet • No duplicate objects stored • No order when inserting • ArrayList and LinkedList • Duplicated objects allowed • Keep order when inserting
Lab • Open API • java.util • Write example of • HashSet • LinkedList • To store objects of Integer
Methods in ListIterator • void add(Object o) • boolean hasNext() • boolean hasPrevious() • Object next() • Object previous() • void remove() • void set(Object o)
public class Client { • private String name; • private double balance; • public Client(String name, double balance) { • this.name = name; • this.balance = balance; • } • public String toString() { • return name + " has " + • balance + " Baht in the bank."; • } • }
import java.util.*; public class ClientList { private LinkedList clientList; //number of clients private static int count=0; //constructor public ClientList () { clientList = new LinkedList(); } //append an element to the linked list public void add(Client somebody) { clientList.add(somebody); count++; } //return number of clients in the linked list public int getCount() { return count; } public ListIterator getListIterator() { return clientList.listIterator(); } }
Sorting (Implements Comparable ) • ค่า 0 ในกรณีที่วัตถุมีค่าเท่ากัน • ค่า -1 ในกรณีที่วัตถุมีค่าน้อยกว่า • ค่า 1 ในกรณีที่วัตถุมีค่ามากกว่า
public class Client implements Comparable { • private String name; • private double balance; • public Client(String name, int balance) { • this.name = name; • this.balance = balance; • } • public String toString() { • return name + " has " + balance + " Baht in the bank."; • } • public int compareTo(Object o) { • //have to cast Obejct o to Client before using it • Client anotherClient = (Client) o; • if(balance == anotherClient.balance) return 0; • else if(balance < anotherClient.balance) return -1; • else return 1; • } • }
import java.util.*; • public class ClientList { • private LinkedList clientList; • //number of clients • private static int count=0; • //constructor • public ClientList () { • clientList = new LinkedList(); • } • //append an element to the linked list • public void add(Client somebody) { • clientList.add(somebody); • count++; • } • //return number of clients in the linked list • public int getCount() { • return count; • } • public ListIterator getListIterator() { • return clientList.listIterator(); • } • public void sort() { • Collections.sort(clientList); • } • }
Methods • boolean empty() ใช้ทดสอบว่า Stack ว่างหรือไม่ • Object pop() ใช้ในการนำข้อมูลออกจาก Stack • Object push(Object item) ใช้ในการนำข้อมูลใส่ใน Stack
import java.util.*; • public class TestStack { • public static void main(String[] args) { • Client tommy = new Client("Tommy", 2000); • Client judy = new Client("Judy", 5000); • Client patty = new Client("Patty", 6000); • Client johnny = new Client("Johnny", 4000); • //create stack • Stack clientStack = new Stack(); • clientStack.push(tommy); • clientStack.push(judy); • clientStack.push(patty); • clientStack.push(johnny); • while( !clientStack.empty() ) { • System.out.println( (Client) clientStack.pop() ); • } • } • } • ---------- Java Output---------- • Johnny has 4000.0 Baht in the bank. • Patty has 6000.0 Baht in the bank. • Judy has 5000.0 Baht in the bank. • Tommy has 2000.0 Baht in the bank.
Lab • จงใช้คลาส HashTable โดยให้ใช้ Method put(Object key, Object value) ในการเก็บข้อมูลและแสดงข้อมูลที่เก็บใน HashTable ทางจอภาพ