不止步于理论javamap集合

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值