转载:Map是不是集合?
1. Java中集合和容器的区别是什么
a. 容器的概念
Java容器类类库的用途是保存对象(引用),主要分两个概念:
1、Collection:一个独立元素的序列。List、Set、Queue。
2、Map:一组成对的键值对对象。其实ArrayList也可以看做是数字与对象的关联关系,而如HashMap等,是对象与对象关联。
List,Set,Queue都是继承自Collection的,而Collection是继承Iterable的,这样的实现可以返回一个迭代器。所以Collection及其子类可以使用迭代器来遍历数组元素。而对于List,有专门的迭代器,可以用于设置初始迭代位置和双向遍历。
b. 集合的概念
集合具有两重概念,首先可代指容器,很多翻译上会把集合和容器等同;其次集合也可指Collection这个具体的容器概念,此时容器包含集合。
2. Collection和Collections的区别
a. java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
b. java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。其主要功能有排序(Sort)、混排(Shuffling)、反转(Reverse)、拷贝(Copy)、替换所以的元素(Fill)、最大值最小值(max/min)等。
3. Map遍历的三种方法
(1).Map的values()方法可以获取Map值的集合:
Iterator it = map.values().iterator();
while(it.hasNext()){
Object obj = it.next();
}
(2).Map的keySet方法可以获取Map键的Set集合:
Set<String> keys = map.keySet();
for(Iterator it = key.iterator(); it.hasNext(); ){
String key = it.next();
Object obj = map.get(key);
}
(3).通过使用Entry来得到Map的key和value:
Set<Map.Entry<String, Object>> entrySet = map.entrySet();
for(Iterator <Map.Entry<String, Object>> it = entrySet.iterator(); it.hasNext(); ){
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
Object value = entry.getValue();
}