map集合的实操
犯的错误
1.第一个错误由于map和collection都是集合,理所应当方法通用,
写到添加元素时发现collection 的add方法报错,
{map有自己的put添加方法}
2.遍历时不可 直接使用迭代器遍历报错。
先遍历key集合,在通过key取值进行遍历,具体基础代码如下。
package test;
import java.util.*;
import java.util.HashMap;
import java.util.Map;
public class mapandset {
public static void main(String[] args){
//创建hashmap集合
Map mp = new HashMap();
//创建Treemap
Map tp = new TreeMap();
//添加元素 以键值对的形式进行添加
//键可以是null,保证键的唯一性
mp.put("1","星期一");
mp.put("3","星期三");
mp.put("2","星期二");
mp.put("4","星期四");
mp.put("5","星期五");
mp.put("null","null");
tp.put("1","星期一");
tp.put("3","星期三");
tp.put("2","星期二");
tp.put("4","星期四");
tp.put("5","星期五");
tp.put("null","null");
tp.put("6","null");
//取出元素
//System.out.println(mp.get("1"));
//遍历
System.out.println("-------对hashmap进行遍历---------");
Set set = mp.keySet(); //获取key键集合
Iterator it = set.iterator();
while (it.hasNext()){
String str=(String)it.next(); //对键进行遍历
String name = (String)mp.get(str); //通过取出的键使用get方法取键对应的值
System.out.println(str+""+name); //打印
}
System.out.println("-------对treemap进行遍历---------");
Set tpset = tp.keySet(); //获取key键集合
Iterator tpit = tpset.iterator();
while (tpit.hasNext()){
String str=(String)tpit.next(); //对键进行遍历
String name = (String)tp.get(str); //通过取出的键使用get方法取键对应的值
System.out.println(str+""+name); //打印
}
//删除
System.out.println("删除前的元素个数:"+mp.size());
mp.remove("1");
System.out.println("删除后的元素个数:"+mp.size());
}
}
运行结果:
总结:
1.想内部有一定顺序,找Tree,不管是treemap,还是treeset
2.看到hash想到hashcode,equals
3.一般无序的要比有序效率高,例如hashmap比treemap效率高,
hashset比treeset效率高
hashmap 非线程安全,健值都可以是null
hashtable 线程安全,健值不可以是null