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