List (danh sách)

Một phần của tài liệu Lập trình hướng đối tượng (Trang 51 - 52)

M ts phép toán khác

3. List (danh sách)

C u trúc List là d ng t p h p các ph n t c s p theo th t (còn c g i là dãy tu n t ) và trong ó cho phép l p (hai ph n t gi ng nhau). Ngoài nh ng hàm mà nó c k th a t Collection, List còn b sung thêm nh ng hàm nh :

Object get(int index)

Cho l i ph n t c xác nh b i index.

Object set(int index, Object elem) // Tùy ch n

Thay th ph n t c xác nh b i index b ng elem.

void add(int index, Object elem) // Tùy ch n

Chèn elem vào sau ph n t c xác nh b i index.

Object remove(int index) // Tùy ch n

B i ph n t c xác nh b i index.

boolean addAll(int index, Collection c) // Tùy ch n

Chèn các ph n t c a t p h p c vào v trí c xác nh b i index.

int indexOf(Object elem)

Cho bi t v trí l n xu t hi n u tiên c a elem trong danh sách.

int lastIndexOf(Object elem)

Cho bi t v trí l n xu t hi n cu i cùng c a elem trong danh sách.

List subList(int fromIndex, int toIndex)

L y ra m t danh sách con t v trí fromIndex n toIndex .

ListIterator listIterator()

Cho l i các ph n t liên ti p b t u t ph n t u tiên.

ListIterator listIterator(int index)

Cho l i các ph n t liên ti p b t u t ph n t c xác nh b iindex.

Trong ó ListIterator là giao di n m r ng giao di n Iterator ã có trongjava.lang.

Các l p ArrayList, Vector và LinkedList

Ba l p này có nh ng toán t t o l p t o ra nh ng danh sách m i r ng ho c có các ph n t l y theo các t p h p khác.

Vector và ArrayList là hai l p ki u m ng ng (kích th c thay i c). Hi u su t s d ng hai l p này là t ng ng nhau, tuy nhiên n u xét theo nhi u khía c nh khác thì ArrayList là c u trúc hi u qu nh t cài t c u trúc danh sách List.

Ví d 6.5 H th ng có m t dãy N_DIGIT (5) ch s bí m t. Hãy vi t ch ng trình nh p vào N_DIGIT ch s oán xem có bao nhiêu ch s trùng và có bao nhiêu v trí các ch s trùng v i dãy s cho tr c.

import java.util.*;

public class NhapDoanSo {

final staticint N_DIGIT = 5;

public static voidmain(String args[]){

if(args.length != N_DIGIT) {

System.err.println("Hay doan " + N_DIGIT + " chu so!");

return; }

biMat.add("5"); // B sung các s vào dãy biMat biMat.add("3");

biMat.add("2"); biMat.add("7"); biMat.add("2");

List doan =new ArrayList();// T o danh sách doan là r ng

for(int i = 0; i < N_DIGIT; i++)

doan.add(args[i]); // a các s t i s ch ng trình vào doan List lap =new ArrayList(biMat);// L u l u biMat sang lap

int nChua = 0;

// m s các ch s trùng nhau, ngh a là th c hi n c phép b i remove()

for(int i = 0; i < N_DIGIT; i++)

if (lap.remove(doan.get(i))) ++nChua; int nViTri = 0;

ListIterator kiemTra = biMat.listIterator(); ListIterator thu = doan.listIterator();

// Tìm nh ng v trí oán trúng trong hai dãy có l p

while(kiemTra.hasNext())// Khi còn ph n t ti p theo

// Ki m tra xem l n l t các v trí c a hai dãy có trùng nhau hay không

if (kiemTra.next().equals(thu.next())) nViTri++; // Thông báo k t qu ra màn hình

System.out.println(nChua + " chu so doan trung."); System.out.println(nViTri + " vi tri doan trung.");

}} }

D ch và th c hi n ch ng trình:

java NhapDoanSo 3 2 2 2 7 s cho k t qu :

4 chu so doan trung 1 vi tri doan trung

Một phần của tài liệu Lập trình hướng đối tượng (Trang 51 - 52)

Tải bản đầy đủ (PDF)

(55 trang)