By GokiSoft.com|
10:13 04/09/2021|
[Share Code] Tìm hiểu Collections
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)