Java集合(HashMap和Hashtable區別,集合工具類Collectoins)

一、HashMap與Hashtable區別

HashMap與Hashtable的區別:

     1.HashMap:鍵允許爲null,值允許爲null,線程不安全,效率高

     2.Hashtable:鍵不允許爲null,值不允許爲null,線程安全,效率低

示例代碼:

package com.map.test;

import java.util.HashMap;
import java.util.Hashtable;
import java.util.Set;

/**
 *HashMap與Hashtable的區別
 * HashMap:鍵允許爲null,值允許爲null,線程不安全,效率高
 * Hashtable:鍵不允許爲null,值不允許爲null,線程安全,效率低
 *
 * List,Set,Map等接口是否都繼承自Map
 * List,Set不是繼承自Map,而是繼承自Collection接口
 * Map接口本身就是個頂層接口
 */
public class HashMapHashtableTest {
    public static void main(String[] args) {
        //HashMap<String,String> hm = new HashMap<String,String>();
        Hashtable<String,String> hm = new Hashtable<String,String>();

        hm.put("it","hello");
        hm.put(null,"world");//NullPointerException
        hm.put("java",null);//NullPointerException

        Set<String> se = hm.keySet();
        for(String s : se){
            System.out.println(s+"--"+hm.get(s));
        }
    }
}

二、Collections集合工具類

Collections是集合的工具類,對集合進行操作。此類完全由在 collection 上進行操作或返回 collection 的靜態方法組成。

一些方法用法:

package com.Collections.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 集合工具類:Collections
 */
public class CollectionTest {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();

        list.add(10);
        list.add(30);
        list.add(20);
        list.add(60);
        list.add(50);
        list.add(40);
        //System.out.println("Nosort"+list);
        //排序
        Collections.sort(list);
        System.out.println("sort"+list);
        //二分查找,查找前要排序
        System.out.println(Collections.binarySearch(list,50));
        System.out.println(Collections.binarySearch(list,500));
        //最大值
        System.out.println(Collections.max(list));
        //反轉
        Collections.reverse(list);
        System.out.println(list);
        //隨機放置,跟洗牌一個意思,每次的順序都不一樣,每個元素在某個位置的概率相同
        Collections.shuffle(list);
        System.out.println(list);

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章