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);

    }
}

 

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