黑马程序员---java学习笔记之map集合

1、集合map常用的三个实现子类:hashTable,hashMap,TreeMap。

        a):hashTable类底层数据结构是hash表,线程同步,不可以使用null键null值;

        b):hashMap类的底层数据结构也是哈希表,线程不同步,可以使用null键null值;

        c):TreeMap类的底层数据结构是二叉排序树,线程不同步,可以根据键值排序。

2、set集合在底层使用了很多的map集合。

3、在使用HashMap类中的put方法时,当出现put方法的第一个参数(键)与map集合元素中已有的键相同时,put方法第二个参数(值)会替换掉集合元素相应键的值,并把该值返回,示例如下:

Map<String,String> map = new HashMap<String,String>();
		
		System.out.println(map.put("java01","a"));//打印结果为:null

		System.out.println(map.put("java01","c"));//打印结果为:a

4、使用Map集合中的keySet方法,取出所有的键值。首先调用keySet方法,然后再使用Set集合的迭代器方式获取键,之后再调用map集合的get方法获取值,之后进行遍历,代码如下:

Map<String,String> map = new HashMap<String,String>();
		
		map.put("java01","a");
		map.put("java02","b");
		map.put("java03","c");
		map.put("java04","d");
		
		Set<String> set = map.keySet();
		Iterator<String> it = set.iterator();
		while( it.hasNext() )
		{
			String key = it.next();
			System.out.println("key = "+key+",value = "+map.get(key));
		}
		
5、使用map集合中的entrySet方法获取键和值。示例代码如下:

Map<String,String> map = new HashMap<String,String>();
		
		map.put("java01","a");
		map.put("java02","b");
		map.put("java03","c");
		map.put("java04","d");
		
		
		Set<Map.Entry<String, String>> set = map.entrySet();
		
		Iterator<Map.Entry<String, String>> it = set.iterator();
		while( it.hasNext() )
		{
			Map.Entry<String, String> me = it.next();
			System.out.println("key = "+me.getKey()+",value = "+me.getValue());
			
		}

6、返回某字符串中的字符出现次数:

	//求某一字符串中各字符出现的次数
		
		String str = "dfhiofnlkdfoifnz.fnaj";
		HashMap<Character,Integer> hs = new HashMap<Character,Integer>();
		
		for( int i = 0; i < str.length(); i++ )
		{
			char ch = str.charAt(i);
			
			if( hs.get(ch) == null )
				hs.put(ch, 1);
			else
			{
				int temp = hs.get(ch);
				hs.put(ch, temp+1);
			}
		}
		Set<Character> set = hs.keySet();
		
		Iterator<Character> it = set.iterator();
		
		while( it.hasNext() )
		{
			Character ch = it.next();
			System.out.println(ch+"   "+hs.get(ch));
		}
		
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值