Collection、List、Set、Map關係圖學習筆記1
阿新 • • 發佈:2019-01-07
用PD畫了一張相關介面、相關類及主要方法的圖 幫助加深理解與記憶
接著對主要類 做了個簡單的測試 更多的測試與學習 後續後補上
/** * */ package com.undergrowth.util; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Stack; import org.junit.Test; /** * 測試集合操作 * * @author Administrator * */ public class CollectionTest { /** * 泛型方法 對實現Iterable<E>介面的物件進行迭代 * * @param iterable */ public <E> void iterator(Iterable<E> iterable) { for (E e : iterable) { System.out.println(e); } } // 測試陣列 private final String[] ITEMS = { "中國", "美國", "德國", "法國" }; /** * 建立ArrayList集合 * * @return */ private Collection<String> createArrayList() { Collection<String> collection = new ArrayList<String>(); addData(collection); return collection; } /** * 向陣列中新增元素 * * @param collection */ private void addData(Collection<String> collection) { // TODO Auto-generated method stub collection.addAll(Arrays.asList(ITEMS)); } /** * 測試ArrayList可變陣列 */ @Test public void testArrayList() { Collection<String> collection = createArrayList(); iterator(collection); System.out.println("刪除後,在進行迭代"); collection.remove("中國"); iterator(collection); System.out.println("測試是否包含中國:" + collection.contains("中國")); System.out.println("測試清除集合:"); collection.clear(); iterator(collection); System.out.println("測試清除集合後,是否為空:" + collection.isEmpty()); addData(collection); iterator(collection); System.out.println("填充資料後,轉換為陣列"); System.out.println("陣列元素個數:" + collection.toArray().length); System.out.println("擷取子列表,[0,2)"); iterator(((List<String>) collection).subList(0, 2)); } /** * 建立堆疊元素 * * @return */ private Stack<String> createStack() { // TODO Auto-generated method stub Stack<String> stack = new Stack<>(); stack.push(ITEMS[0]); stack.push(ITEMS[1]); stack.push(ITEMS[2]); return stack; } /** * 測試堆疊 先進後出 */ @Test public void testStack() { Stack<String> stack = createStack(); iterator(stack); System.out.println("判斷堆疊是否為空:" + stack.empty()); System.out.println("查詢堆疊元素的位置:" + stack.search("中國")); System.out.println("檢視棧頂元素:" + stack.peek()); System.out.println("刪除棧頂元素:" + stack.pop()); } /** * 建立Set集合 * * @return */ private Set<String> createSet() { // TODO Auto-generated method stub Set<String> set = new HashSet<>(); set.add(ITEMS[0]); set.add(ITEMS[0]); set.add(ITEMS[0]); set.add(ITEMS[1]); set.add(ITEMS[2]); set.add(ITEMS[3]); return set; } /** * 測試HashSet */ @Test public void testHashSet() { Set<String> set = createSet(); iterator(set); } /** * 建立Map 鍵值對 * * @return */ private Map<String, String> createMap() { // TODO Auto-generated method stub Map<String, String> map = new HashMap<String, String>(); map.put(ITEMS[0], ITEMS[0]); map.put(ITEMS[0], ITEMS[0]); map.put(ITEMS[1], ITEMS[1]); map.put(ITEMS[2], ITEMS[2]); map.put(ITEMS[3], ITEMS[3]); return map; } /** * 測試HashMap */ @Test public void testHashMap() { Map<String, String> map = createMap(); iterator(map.keySet()); iterator(map.values()); } }