By GokiSoft.com| 10:13 04/09/2021|
Java Advanced

[Share Code] Tìm hiểu Collections + + Map - Generic - Lập trình Java - C2009G



Nội dung kiến thức:
- Collections:
	- List -> ArrayList, Vector, LinkedList
	- Set
	- Map -> HashMap
	- Stack/Queue
- Generic

String[] t = new String[100];
int size = 0;

t[size++] = ???
...
...
...

size -> So phan tu trong mang
0 -> size: du lieu
size -> 100 -> trong




#Student.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lesson02;

/**
 * rollno -> unique -> Gia tri duy nhat -> ko dc trung giua object
 * @author Diep.Tran
 */
public class Student {
    String fullname, rollno, address;

    public Student() {
    }

    public Student(String fullname, String rollno, String address) {
        this.fullname = fullname;
        this.rollno = rollno;
        this.address = address;
    }

    public String getFullname() {
        return fullname;
    }

    public void setFullname(String fullname) {
        this.fullname = fullname;
    }

    public String getRollno() {
        return rollno;
    }

    public void setRollno(String rollno) {
        this.rollno = rollno;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student{" + "fullname=" + fullname + ", rollno=" + rollno + ", address=" + address + '}';
    }
}


#Main.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lesson02;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Vector;

/**
 *
 * @author Diep.Tran
 */
public class Main {
    public static void main(String[] args) {
        //Array Index
        String[] list = new String[10];
        //testList();
        //testSet();
        //testMap();
        List<Student> studentList = new ArrayList<>();
        studentList.add(new Student("A", "R001", "Ha Noi"));
        studentList.add(new Student("C", "R002", "Nam Dinh"));
        studentList.add(new Student("B", "R003", "Ha Noi"));
        
        for (Student student : studentList) {
            System.out.println(student);
        }
        
        Collections.sort(studentList, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getFullname().compareToIgnoreCase(o2.getFullname());
            }
        });
        
        for (Student student : studentList) {
            System.out.println(student);
        }
        
        ArrayList<Integer> t1 = new ArrayList<>();
        t1.add(1);
        t1.add(5);
        
        ArrayList<String> t2 = new ArrayList<>();
        t2.add("1232");
        
//        DataController<String> d1 = new DataController<>();
//        d1.add("A1");
//        d1.add("A2");
//        d1.add("A3");
//        
//        d1.display();
        
        DataController<Student> d2 = new DataController<>();
        d2.add(new Student("A", "R1", "HN"));
        d2.add(new Student("B", "R2", "HN"));
        d2.add(new Student("AD", "R3", "HN"));
        
        d2.display();
    }
    
    /**
     * Quan ly du lieu theo key -> value
     *      su dung key a1 -> luu du lieu 'abc'
     *      Dung keu a1 -> lay dc du lieu da luu 'abc'
     *  key -> int, String
     *  value -> int, double, float, String, char, Object Class
     */
    static void testMap() {
        Map<String, String> map = new HashMap<>();
        //Quan ly du lieu nhu nao
        //key: fullname -> value: TRAN VAN A
        //key: address -> value: Ha Noi
        map.put("fullname", "TRAN VAN A");
        map.put("fullname", "TRAN VAN B");
        map.put("fullname", "TRAN VAN C");
        map.put("address", "Ha Noi");
        
        //Lay du lieu ra -> biet dc key
        String v = map.get("fullname");
        System.out.println(v);
        
        for (Map.Entry<String, String> entry : map.entrySet()) {
            String key = entry.getKey();
            String val = entry.getValue();
            System.out.println("key: " + key + ", value: " + val);
        }
        
        for (String key : map.keySet()) {
            String v1 = map.get(key);
            System.out.println("key: " + key + ", value: " + v1);
        }
        
        Map<String, Student> map2 = new HashMap<>();
        Student std1 = new Student("A", "R001", "HA NOI");
        map2.put(std1.getRollno(), std1);
        Student std2 = new Student("BB", "R002", "HA NOI");
        map2.put(std2.getRollno(), std2);
        Student std3 = new Student("C", "R003", "HA NOI");
        map2.put(std3.getRollno(), std3);
        
        if(map2.containsKey("R002")) {
            Student std = map2.get("R002");
            System.out.println(std);
        }
    }
    
    static void testSet() {
        Set<String> set = new HashSet<>();
        set.add("1231");
        set.add("4324");
        set.add("sdfsf");
        
        for (String v : set) {
            System.out.println(v);
        }
    }
    
    static void testList() {
        //Phan 1: List
        /***
         * Phan tich ArrayList -> xem cach hoat dong.
         *  - elementData -> Array Index -> Su dung de quan ly du lieu
         *  - Ham tao
         *      - Khoi tao elementData -> {} -> empty
         *  - add -> khi them phan tu vao thi nhu nao
         *      - Neu elementData -> empty -> khoi tao 10 khong gian bo nho
         *      - Phan tu thu 11 -> tang bo nho theo rule old += (old >> 1)
         *      - Tang bo nho theo cong thuc: old += (old >> 1)
         *          10, 15, 22, 33, ...
         */
        int length = 10;
        System.out.println(length);
        length += (length >> 1);
        System.out.println(length);
        length += (length >> 1);
        System.out.println(length);
        length += (length >> 1);
        System.out.println(length);
        ArrayList<String> arr1 = new ArrayList<>();
        //List<String> arr2 = new ArrayList<>();
        //Them phan tu
        arr1.add("s1");
        arr1.add("s2");
        arr1.add("s3");
        //Them 1 phan tu vao 1 vi tri index = 1
        arr1.add(1, "s2-1");
        //Sua 1 phan tu tai 1 vi tri index = 2
        arr1.set(2, "s2-2");
        //Xoa 1 phan tu khoi array -> index = 1
        arr1.remove(1);
        //lay cac phan tu trong mang
        System.out.println("arr1[0] = " + arr1.get(0));
        
        for (int i = 0; i < arr1.size(); i++) {
            System.out.println("" + arr1.get(i));
        }
        
        for (String v : arr1) {
            System.out.println(v);
        }
        
        arr1.forEach(v -> {
            System.out.println(v);
        });
        
        //List -> Vector
        /***
         * Phan tich Vector -> xem cach hoat dong.
         *  - elementData -> Array Index -> Su dung de quan ly du lieu
         *  - Ham tao
         *      - Khoi tao elementData -> {10 phan tu} -> gom 10 phan tu
         *  - add -> khi them phan tu vao thi nhu nao
         *      - Phan tu thu 11 -> tang bo nho theo rule old += old
         *      - Tang bo nho theo cong thuc: old += old
         *          10, 20, 40, 80, ...
         */
        Vector<String> arr2 = new Vector<>();
        //Them phan tu
        arr2.add("s1");
        arr2.add("s2");
        arr2.add("s3");
        //Them 1 phan tu vao 1 vi tri index = 1
        arr2.add(1, "s2-1");
        //Sua 1 phan tu tai 1 vi tri index = 2
        arr2.set(2, "s2-2");
        //Xoa 1 phan tu khoi array -> index = 1
        arr2.remove(1);
        //lay cac phan tu trong mang
        System.out.println("arr2[0] = " + arr2.get(0));
        
        for (int i = 0; i < arr2.size(); i++) {
            System.out.println("" + arr2.get(i));
        }
        
        for (String v : arr2) {
            System.out.println(v);
        }
        
        arr2.forEach(v -> {
            System.out.println(v);
        });
        
        //List -> LinkedList
        LinkedList<String> arr3 = new LinkedList<>();
        //Them phan tu
        arr3.add("s1");
        arr3.add("s2");
        arr3.add("s3");
        //Them 1 phan tu vao 1 vi tri index = 1
        arr3.add(1, "s2-1");
        //Sua 1 phan tu tai 1 vi tri index = 2
        arr3.set(2, "s2-2");
        //Xoa 1 phan tu khoi array -> index = 1
        arr3.remove(1);
        //lay cac phan tu trong mang
        System.out.println("arr3[0] = " + arr3.get(0));
        
        for (int i = 0; i < arr3.size(); i++) {
            System.out.println("" + arr3.get(i));
        }
        
        for (String v : arr3) {
            System.out.println(v);
        }
        
        arr3.forEach(v -> {
            System.out.println(v);
        });
        
        List<String> t = new ArrayList<>();
        t = new Vector<>();
        t = new LinkedList<>();
    }
}


#DataController.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lesson02;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Diep.Tran
 */
public class DataController<E extends Student> {
    List<E> dataList = new ArrayList<>();
    
    public void add(E e) {
        dataList.add(e);
    }
    
    public void display() {
        for (E e : dataList) {
            System.out.println(e);
        }
    }
}


Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)