Javaコレクション(HashMapとHashtableの違い、コレクションツールクラスCollectoins)

2204 ワード

一、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 hm = new HashMap();
        Hashtable hm = new Hashtable();

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

        Set 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 list = new ArrayList();

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

    }
}