一、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);
}
}