Tải bản đầy đủ (.ppt) (28 trang)

Bài giảng java.util package pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (470.38 KB, 28 trang )


java.util Package
Bài 10
Bài 10 2/ 28
Nội dung chính

Tìm hiểu về một số lớp:

Date

Random

Collection classes

ArrayList

Hashtable

Set

Vector

Stack
Bài 10 3/ 28
Date class
Constructor Mục đích
Date() Tạo một đối tượng date sử dụng
ngày hiện tại
Date(long dt) Tạo Date obj với số milliseconds kể
từ 1/1/1970.
Date( int yr, int


mon, int dt)
Tạo Date obj với ngày xác định:
year, month, day.

Date class để làm việc với ngày tháng, thời gian.
Bài 10 4/ 28
import java.util.*;
import java.text.*;

class DateTime
{
public static void main(String args[])
{
String strDate, strTime = "";
SimpleDateFormat sdfFormat;
DateFormatSymbols dfsLocales;
// Create a US English locale
dfsLocales = new DateFormatSymbols(new Locale("en","US"));

// Create a pattern to format the date
// as per the US English locale
sdfFormat = new SimpleDateFormat("yyyy.MMMMM.dd GGG 'at'
hh:mm:ss aaa", dfsLocales);

//current date is obtained
Date objDate = new Date();
Ví dụ
strDate = objDate.toString();
System.out.println("Current Date :" + strDate);
System.out.println("After formatting " +

sdfFormat.format(objDate));

// Extract GMT time
strTime = strDate.substring(11,( strDate.length() - 4));

// Extract the time in hours, minutes, seconds
strTime = "Time : " + strTime.substring(0,8);

System.out.println(strTime);
}
}
Output
Bài 10 5/ 28
Random class

Hỗ trợ việc tạo các số ngẫu nhiên

Có 2 constructors:

Random(long seed)

Seed là một số được sử dụng để bắt đầu việc sinh ra số
ngẫu nhiên.

Random()

Sử dụng current time để làm seed
Bài 10 6/ 28
Example
import java.util.*;


class RandomNos
{
public static void main(String[] args)
{
while (true)
{
Random objRandom = new java.util.Random();
System.out.println(((objRandom.nextInt()/20000)>>>1)/1500);
try
{
Thread.sleep(500);
}
catch(InterruptedException e){ }
}
}
}
Output
Bài 10 7/ 28
Collections API (tập hợp)

Arrays là kiểu dữ liệu tập hợp đơn giản nhất.

Ta không thể dự đoán trước được kích cỡ
của mảng một cách chính xác.

Trong trường hợp mảng không được sử dụng
hết -> lãng phí bộ nhớ

Để tránh điều này chương trình phải có cơ

chế lưu thông tin động.
Bài 10 8/ 28
Collections API

Data structure phải thỏa mãn việc lưu trữ và
tổ chức dữ liệu động.

Data structures chứa các thể hiện của
Collections API.

Collections API có các interface như
Collection, List và Set.

Với các lớp tương ứng như: ArrayList,
LinkedList, HashSet…
Bài 10 9/ 28
List Interface

Kế thừa từ Collection interface.

Sử dụng để tạo danh sách các đối tượng
tham chiếu.

Cung cấp các phương thức để tạo danh sách
các phần tử

List có thể có các phần tử trùng lặp.

Hai thể hiện của List interface là ArrayList
và LinkedList.

Bài 10 10/ 28
Set Interface

Kế thừa từ Collection và nó định nghĩa
một tập các phần tử giống như List.

Không cho phép 2 phần tử trùng lặp

Sử dụng để thiết lập một danh sách các đối
tượng tham chiếu không có các phần tử trùng
lặp.
Bài 10 11/ 28
SortedSet

SortedSet kế thừa từ Set interface.

Sắp xếp các phần tử theo thứ tự tăng dần

Sử dụng để tạo một danh sách được sắp xếp
các phần tử không trùng lặp.
Bài 10 12/ 28
Collection classes

ArrayList

Sử dụng để tạo một mảng động

Được kế thừa từ AbstractList và
implements List interface.


ArrayLists được tạo với một kích thước khởi
tạo.

Khi mỗi phần tử được add vào thì kích thước của
nó tăng lên một đơn vị.
Bài 10 13/ 28
Ví dụ
import java.awt.*;
import java.awt.event.*;
import java.util.*;

class ArrayListDemo extends Frame
{
TextField txtName;
Label lblName = new Label("Name :");
Button btnAdd = new Button("Add");
Button btnDelete = new Button("Delete");
Button btnExit = new Button("Exit");
ArrayList objArray = new ArrayList();
public ArrayListDemo(String str)
{
super(str);
setLayout(new FlowLayout());

add(lblName);
txtName = new TextField(20);
add(txtName);
add(btnAdd);
add(btnDelete);
add(btnExit);

ButtonHandler handler = new ButtonHandler();
btnAdd.addActionListener(handler);
btnDelete.addActionListener(handler);
btnExit.addActionListener(handler);


addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );

setSize(400,200);
show();

}
public static void main(String args[])
{
ArrayListDemo objArrayListDemo = new ArrayListDemo("Adding to Array List");
}
public void paint(Graphics g)
{
g.drawString("Size of array is " + objArray.size(),100,100);
}
Bài 10 14/ 28
Ví dụ
class ButtonHandler implements ActionListener
{

public void actionPerformed(ActionEvent e)
{
String str = e.getActionCommand();
if(str.equals("Add"))
{
objArray.add(txtName.getText());
repaint();
}
else if(str.equals("Delete"))
{
objArray.remove(txtName.getText());
repaint();
}
else
{
System.exit(0);
}
}
}
}
Output
Bài 10 15/ 28
Collection classes

LinkedList

Linked-list là một List nhưng mỗi phần tử liên kết với
một item tiếp theo.

Đó là một danh sách tuyến tính hoặc danh sách nối

vòng.

Kế thừa từ AbstractSequentialList and implements the
List interface.
Bài 10 16/ 28
Example
import java.util.*;

class StarList
{
public static void main(String args[])
{
LinkedList llstStars = new LinkedList();
llstStars.add("Michelle");
llstStars.add("Nicole");
llstStars.add("Demi");
llstStars.add("Geena");
llstStars.add("Jenny");

System.out.println("Contents of the list :");
System.out.println(llstStars);

llstStars.addFirst("Julia");
llstStars.addLast("Jennifer");
System.out.println("\nContents of the list after adding Julia
and Jennifer :");
System.out.println(llstStars);
System.out.println();
llstStars.remove(2);
llstStars.remove("Nicole");

System.out.println("\nContents of the list after deleting Nicole and
element at index 2 :");

System.out.println(llstStars);
String strTemp = (String) llstStars.get(3);
llstStars.set(3, strTemp + " Lenon");
System.out.println("\nContents of the list after modifying 4th
element :");
System.out.println(llstStars);
}
}
Output
Bài 10 17/ 28
Collection classes

HashSet

Tạo một danh sách lưu trữ theo hashtable

Hash table là một cấu trúc lưu trữ theo từng cặp
key và value

HashSet kế thừa từ AbstractSet và
implements Set interface.
Bài 10 18/ 28
Example
import java.util.*;

public class NamesSet
{

public static void main(String args[])
{
Set objSet = new HashSet();
objSet.add("Patrick");
objSet.add("Bill");
objSet.add("Gene");
objSet.add("Daniel");
objSet.add("Claire");

System.out.println("Contents of the set :");
System.out.println(objSet);
System.out.println("Size of the set : " + objSet.size());
System.out.println("\nContents of the set after adding 2 elements :");
objSet.add("Rubio");
objSet.add("Yang Sun");
System.out.println(objSet);
System.out.println("Size of the set : " + objSet.size());
}
}
Output
Bài 10 19/ 28
Hashtable

Phương thức khởi tạo Hashtable:

Hashtable(int)

Hashtable(int, float)

Hashtable( )


Một số phương thức:

keys()

put(Object, Object)

rehash()

remove(Object key)

size()

toString()

isEmpty()

clear()

done()

contains(Object)

containsKey(Object)

elements()

get(Object key)
Bài 10 20/ 28
The TreeSet Class


TreeSet cũng implements Set interface và
sử dụng cấu trúc cây để lưu trữ.

Các đối tượng đã được sắp xếp theo thứ tự
tăng dần -> việc tìm kiếm nhanh hơn
Bài 10 21/ 28
Example
import java.util.*;

class Tree
{
public static void main ( String []args)
{
TreeSet objTree = new TreeSet();
objTree.add("beta");
objTree.add("gama");
objTree.add("tera");
objTree.add("alpha");
objTree.add("penta");

System.out.println("Automatically sorted contents of the Tree : \n" +
objTree);
}
}
Output
Bài 10 22/ 28
Enumeration interface

Sử dụng để lưu một tập hợp các phần tử.


Có 2 methods:

boolean hasMoreElements() – trả về true
nếu còn phần tử chưa xét, trả về false nếu tất cả
các phần tử đã đc xét đến.

Object nextElement() –lấy phần tử tiếp theo
trong danh sách các phần tử.
Bài 10 23/ 28
Example
import java.util.*;

class Hashtest
{
public static void main(String args[])
{
Hashtable htblStudents = new Hashtable();
Enumeration enuNames;
String strName;

htblStudents.put("Tony",new String("2001"));
htblStudents.put("Cathy",new String("2002"));
htblStudents.put("Michael",new String("2002"));
htblStudents.put("Priscilla",new String("2001"));
htblStudents.put("Mark",new String("2001"));

enuNames = htblStudents.keys();

while(enuNames.hasMoreElements())

{
strName = (String)enuNames.nextElement();
System.out.println(strName + " completed graduation in " +
htblStudents.get(strName) + "\n");
}
}
}
Output
Bài 10 24/ 28
Vector class

Cung cấp khả năng co giản cho mảng khi
thêm phần tử vào mảng

Lưu trữ những thành phần của kiểu Object.

Phương thức khởi tạo (Constructors):

Vector(int)

Vector(int, int)

Vector()
Bài 10 25/ 28
Vector class

addElement(Object)

capacity( )


clone( )

contains(Object)

copyInto(Object [ ])

elementAt(int)

elements( )

ensureCapacity(int)

firstElement( )

indexOf(Object)

indexOf(Object, int)

insertElementAt(Object, int)

isEmpty( )

lastElement( )

lastIndexOf(Object)

lastIndexOf(Object, int)

removeAllElements( )


removeElement(Object)

removeElementAt(int)

setElementAt(Object, int)

setSize(int)

size( )

toString( )

trimToSize( )

×