MAP映射
Map是由键对象和值对象组成的
map也是存储数据的,类似数组集合,但不同于数组集合的是map放的是俩数据
Map的格式:<key,value>
Map要求:在放数据时,键对象不能重复,值对象可以重复,key是唯一的;
key和value的数据类型是没有限制
方法:
put(key,value)向map映射中添加数据
size()获得map映射的长度
get(key)根据key获得所对应的value值
values()获得所有的值
keyset()获得所有的键对象(得到一个set集合)
直接是
System.out.println(map.values);
System.out.println(map.keyset);
那问题来了,对于这样的map.put(1,"飞虎");
怎么遍历?
遍历出所有值对象:
Collection<String> col = map.valuse();
for(String s : col){
System.out.println(s);
}
遍历出所有键对象:
Set<Integer> set = map.keySet();
for(Integer i : set){
System.out.println(i+"所对应的值对象为"+map.get(i));
}
//这样输出是1所所对应的值对象为飞狐
HashMap和Hashtable的区别:
1.继承类不同:
a)HashMap继承 AbstractMap
b)Hashtable继承Dictionary
2.执行效率不同:
a)HashMap是非线程安全的,是Hashtable的轻量级实现,效率较高
b)Hashtable是线程安全的,效率较低
3.put方法对key和value的要求不同
a)HashMap允许entity(实体类)的key或者value为null《HashMap允许有空值》
b)Hashtable不允许entity的key或者value为null,
否则会出现NullpointerException
Iterator迭(die二声)代器
说白了就是遍历用的,就是另一种循环方式,专门集合用的
如:
list.add("a");
Iterater it = list.iterator();
//iterator的类型由上面List后面的String决定的,所以
Iterate<String> it = list.iterator<String>();
//而System.out.println(it.hasNext());
//用来判断是否有下一个
System.out.println(it.next());
//得到下一个元素,一个!!
//如果多写可以,写多了就会报错,那么就需要while判断一下了
while(it,hasNext()){
System.out.println(it.next());
}
就这么多了。。。。。
额,有的地方突然想不起来了,
所以会感觉上下句不连贯
额。。。