集合 - Collection

from: Collections in Java

from: Complete Java Collection tutorial for the beginner

Set

a collection that cannot contain duplicate elements

HashSet - 不保證順序

LinkedHaseSet - 可保證插入順序

TreeSet - 會將物件做排序,預設用自然順序

Example

package com.test.collection;

import java.util.Set;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.TreeSet;

public class SetTest {
    public static void main(String [] args) {
        Set<String> hs = new HashSet<String>();
        Set<String> lhs = new LinkedHashSet<String>();
        Set<String> ts = new TreeSet<String>();

        setTest(hs);
        setTest(lhs);
        setTest(ts);
    }

    private static void setTest(Set<String> set) {
        set.add("dog");
        set.add("dog");
        set.add("cat");
        set.add("fish");
        set.add("bird");

        System.out.println(set.getClass().getSimpleName() + ":");
        System.out.println(set);
        System.out.println("--");
    }
}
HashSet:
[cat, fish, bird, dog]
--
LinkedHashSet:
[dog, cat, fish, bird]
--
TreeSet:
[bird, cat, dog, fish]
--

List

ordered collection

ArrayList - 随機存取快,插入/刪除速度慢

LinkedList - 随機存取慢,插入/刪除速度快,也可當做Queue/Stack

Example

ArrayList

package com.test.collection;

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

public class ListTest {
    public static void main(String [] args) {
        List<String> list = new ArrayList<String>();
        // add
        list.add("dog");
        list.add("cat");
        list.add("fish");
        list.add("bird");
        traversal(list);

        // modify
        list.set(0, "apple");
        list.remove(1);
        forEach(list);
    }

    private static void traversal(List<String> list) {
        Iterator<String> iterator = list.iterator();
        System.out.print("List[" + list.size() + "]: ");

        while (iterator.hasNext()) {
            System.out.print(iterator.next() + " ");
        }
        System.out.println();
    }

    // java 8
    private static void forEach(List<String> list) {
        System.out.print("List[" + list.size() + "]: ");
        list.forEach(item->System.out.print(item + " "));
        System.out.println();
    }
}
List[4]: dog cat fish bird 
List[3]: apple fish bird

Array

package com.test.collection;

import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

public class ArrayTest {
    public static void main(String [] args) {
        String[] arr = new String[]{"dog", "cat", "fish", "bird"};
        traversal(arr);

        // Array to ArrayList 
        traversal(Arrays.asList(arr));
    }

    private static void traversal(String[] arr) {
        System.out.print("Array[" + arr.length + "]: ");
        for(String s : arr)
            System.out.print(s + " ");
        System.out.println();
    }

    private static void traversal(List<String> list) {
        Iterator<String> iterator = list.iterator();
        System.out.print("List[" + list.size() + "]: ");

        while (iterator.hasNext()) {
            System.out.print(iterator.next() + " ");
        }
        System.out.println();
    }
}
Array[4]: dog cat fish bird 
List[4]: dog cat fish bird

Queue

a collection used to hold multiple elements prior to processing

Main Operation

Type of operation Throws exception Returns special value
Insert add(e) offer(e)
Remove remove() poll()
Examine element() peek()

from: Java Queue Collection Tutorial and Examples

Example

package com.test.collection;

import java.util.Queue;
import java.util.PriorityQueue;

public class QueueTest {
    public static void main(String [] args) {
        Queue<String> queue = new PriorityQueue<String>();

        queue.offer("dog");
        queue.offer("cat");
        queue.offer("fish");
        queue.offer("bird");

        System.out.println(queue);
        System.out.println("head: " + queue.peek());
        System.out.println("poll: " + queue.poll());
        System.out.println("head: " + queue.peek());
    }
}
[bird, cat, fish, dog]
head: bird
poll: bird
head: cat

Deque

Double Ended Queue - 可從前端或尾端操作資料

Type of operation First element Last element
Insert addFirst(e)
offerFirst(e)
addLast(e)
offerLast(e)
Remove removeFirst()
pollFirst()
removeLast()
pollLast()
Examine getFirst()
peekFirst()
getLast()
peekLast()

from: Java Queue Collection Tutorial and Examples

results matching ""

    No results matching ""