"Hay là tôi bắt đầu với những gì thực sự hữu ích? Bây giờ bạn sẽ thấy một số cách mà ArrayList và generics có thể được đưa vào hoạt động:"

"Ví dụ 1:"

Đọc danh sách các số từ bàn phím
public static void main(String[] args) throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in) );
    ArrayList<Integer> list = new ArrayList<Integer>() ;

    while (true)
    {
        String s = reader.readLine();
        if (s.isEmpty()) break;
        list.add(Integer.parseInt(s));
    }
}

"Ví dụ 2:"

Tương tự như trên, nhưng các số chẵn được thêm vào cuối danh sách, số lẻ – vào đầu danh sách.
public static void main(String[] args) throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    ArrayList<Integer> list = new ArrayList<Integer>();

    while (true)
    {
        String s = reader.readLine();
        if (s.isEmpty()) break;

        int x = Integer.parseInt(s);
        if (x % 2 == 0)  // Check that the remainder is zero when we divide by two
            list.add(x);         // Add to the end
        else
            list.add(0, x);      // Add to the beginning           
    }
}

"Ví dụ 3:"

Xóa tất cả các số lớn hơn 5:
public static void main(String[] args) throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in) );
    ArrayList<Integer> list = new ArrayList<Integer>();

    list.add(1);
    list.add(7);
    list.add(11);
    list.add(3);
    list.add(15);

    for (int i = 0; i < list.size(); ) // We moved the statement that increases i to inside the loop 
    { 
        if (list.get(i) > 5)
            list.remove(i);  // Don’t increase i if we deleted the current element   
        else
            i++;
    }
}

"Ví dụ 4:"

Chia một mảng thành hai phần - số chẵn và số lẻ
public static void main(String[] args) throws IOException
{
    // Static initialization of the array
    int[] data = {1, 5, 6, 11, 3, 15, 7, 8};  

    // Create a list where all elements are Integers 
    ArrayList&ltInteger> list = new ArrayList&ltInteger> ();   

    // Use the array to fill the list
    for (int i = 0; i < data.length; i++) list.add(data[i]);  

    ArrayList&ltInteger> even = new ArrayList&ltInteger>();  // Even numbers
    ArrayList&ltInteger> odd = new ArrayList&ltInteger>();    // Odd numbers

    for (int i = 0; i < list.size(); i++)
    {
        Integer x = list.get(i);
        if (x % 2 == 0)    // If x is even
            even.add(x);   // Add x to the collection of even numbers  
        else
            odd.add(x);    // Add x to the collection of odd numbers
    }
}

"Ví dụ 5:"

Hợp nhất danh sách
public static void main(String[] args) throws IOException
{
    ArrayList<Integer> list1 = new ArrayList<Integer>();   // Create a list  
    Collections.addAll(list1, 1, 5, 6, 11, 3, 15, 7, 8);   // Fill the list

    ArrayList<Integer> list2 = new ArrayList<Integer>();
    Collections.addAll(list2, 1, 8, 6, 21, 53, 5, 67, 18);

    ArrayList<Integer> result = new ArrayList<Integer>();

    result.addAll(list1);   // Add all values from each list to the new list
    result.addAll(list2);

    for (Integer x : result)   // A fast way to loop over all elements, only for collections
    {
        System.out.println(x);
    }
}

"Tuyệt! Bây giờ Diego sẽ cho tôi một xe tải các bài tập tương tự chứ?"

"Vâng, anh ấy sẽ."