Java集合
2021-05-30 本文已影响0人
轻轻敲醒沉睡的心灵
Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。Java的java.util包主要提供了以下三种类型的集合:
-
List
:一种有序列表的集合,例如,按索引排列的Student的List; -
Set
:一种保证没有重复元素的集合,例如,所有无重复名称的Student的Set; -
Map
:一种通过键值(key-value)查找的映射表集合,例如,根据Student的name查找对应Student的Map。
Map
数据结构和Collection
不一样,为什么认为是集合?个人认为应该是Map
设计的entrySet()
等方法返回set
数据,拥有Iterator
(迭代器)的数据特征,可以使用迭代器遍历,因此归纳到集合中了。
集合关系图
上图是引用的别人的一个简单的示例。由于Java的集合设计非常久远,中间经历过大规模改进,我们要注意到有一小部分集合类是遗留类,不应该继续使用:
-
Vector
,一种线程安全的List实现,已被淘汰,可使用ArrayList
替代 -
Hashtable
,一种线程安全的Map实现,已被淘汰,可使用HashMap
替代,如果是高并发的线程安全的实现,推荐使用ConcurrentHashMap
。 -
Enumeration<E>
:已被Iterator<E>
取代
集合在使用时会有一些注意点,不然,有些功能无法实现,参考廖老师网站
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
Map<String, String> map = new HashMap<String, String>();
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
Iterator iter = list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}