Java集合

时间:2021-6-7 作者:qvyue

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集合
    集合关系图

上图是引用的别人的一个简单的示例。由于Java的集合设计非常久远,中间经历过大规模改进,我们要注意到有一小部分集合类是遗留类,不应该继续使用:

  • Vector,一种线程安全的List实现,已被淘汰,可使用ArrayList替代
  • Hashtable,一种线程安全的Map实现,已被淘汰,可使用HashMap替代,如果是高并发的线程安全的实现,推荐使用ConcurrentHashMap
  • Enumeration:已被Iterator取代

集合在使用时会有一些注意点,不然,有些功能无法实现,参考廖老师网站

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 map = new HashMap();
for (Map.Entry 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());
}
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。