您的位置:首页 > 职场人生

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

2013-12-22 14:22 561 查看
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));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: