java-collection-集合的学习

来源:互联网 发布:诺基亚手机下载软件 编辑:程序博客网 时间:2024/05/16 11:58

这里写图片描述

package test;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Hashtable;import java.util.IdentityHashMap;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.LinkedHashSet;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Set;import java.util.Stack;import java.util.TreeMap;import java.util.TreeSet;import java.util.Vector;import java.util.WeakHashMap;import java.util.concurrent.ConcurrentHashMap;/** * @description: <br/> * @version: 1<br/> * @package test.AMain.java * @author YangPu * @date 2017年7月5日 下午4:38:08 */public class AMain {    public static void main(String[] args) {        // Map map = new HashMap();        // map.put(null, null);//        // map.put(null, "null-value");        // map.put("null-key", null);//        // map.put("key", "value");//        // map.put("key", "value1");//        // map.put(null, "null");//        // for (Iterator iterator = map.keySet().iterator();        // iterator.hasNext();) {        // Object key = iterator.next();        // System.out.println("key:" + key + "|||value:" + map.get(key));        // }        // weakHashMap();        // vector_stack();        list();    }    // map集合    public static void map() {        // HashMap内部是无序的--多线程环境下是不安全的        Map hashMap = new HashMap<String, String>();        hashMap.put("hashMap", "12345");        // LinkedHashMap继承HashMap,内部并且维护了一个链表,来存储插入时候的顺序        Map linkedHashMap = new LinkedHashMap<String, String>();        linkedHashMap.put("linkedHashMap", "12345");        // 不拷贝对象--弱引用,当key被gc回收的时候,会销毁掉key-value        Map weakHashMap = new WeakHashMap<String, String>();        weakHashMap.put("weakHashMap", "12345");        // 多线程环境下是安全的--Hashtable是线程安全的也是synchronized        Map hashtable = new Hashtable<String, String>();        // Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。        Map concurrentHashMap = new ConcurrentHashMap<String, String>();        hashtable.put("hashtable", "12345");        // 有序的--内部原理,红黑树        Map treeMap = new TreeMap<String, String>();        treeMap.put("treeMap", "12345");        // 和HashMap相比。判断相等用“==”        Map identityHashMap = new IdentityHashMap<String, String>();        identityHashMap.put("identityHashMap", "12345");    }    // map集合-WeakHashMap    public static void weakHashMap() {        Map weakHashMap = new WeakHashMap<String, String>();        User user = new User("name", 12);        weakHashMap.put(user, "12345");        System.out.println("1");        for (Iterator iterator = weakHashMap.keySet().iterator(); iterator.hasNext();) {            User temp = (User) iterator.next();            System.out.println(temp);            System.out.println(weakHashMap.get(temp));        }        user = null;        System.gc();        System.out.println("2");        for (Iterator iterator = weakHashMap.keySet().iterator(); iterator.hasNext();) {            User temp = (User) iterator.next();            System.out.println(temp);            System.out.println(weakHashMap.get(temp));        }    }    // list集合-ArrayList-LinkedList    public static void list() {        System.out.println("list");        List arrayList = new ArrayList<String>();        arrayList.add("arrayList");        List linkedList = new LinkedList<String>();        linkedList.add("linkedList");    }    // vector_stack集合    public static void vector_stack() {        // 与list相比,Vector是同步的,有线程安全的        List vector = new Vector<String>();        vector.add("vector");        vector.add("vector");        for (int i = 0; i < vector.size(); i++) {            System.out.println(vector.get(i));        }        // Stack 类表示后进先出(LIFO)的对象堆栈        List stack = new Stack<String>();        stack.add("stack");    }    // set集合-HashSet-TreeSet-LinkedHashSet    public static void set() {        // 是对HashMap的一种封装--HashMap<E,Object>        Set hashSet = new HashSet<String>();        hashSet.add("hashSet");        // 是对LinkedHashMap的一种封装        Set linkedHashSet = new LinkedHashSet<String>();        linkedHashSet.add("linkedHashSet");        // 是对TreeMap的一种封装        Set treeSet = new TreeSet<String>();        treeSet.add("treeSet");    }}