Collection集合的基本结构:

1、Collection接口

Collection是最基本集合接口,它定义了一组允许重复的对象。Collection接口派生了两个子接口Set和List,分别定义了两种不同的存储方式,如下:

2、 Set接口

Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set接口的集合类中的元素是无序且不可重复。

特征:无序且不可重复。

3、  List接口

List接口同样也继承于Collection接口,但是与Set接口恰恰相反,List接口的集合类中的元素是对象有序且可重复。

特征:有序且可重复。

两个重要的实现类:ArrayList和LinkedList

1.ArrayList特点是有序可重复的

2.LinkedList是一个双向链表结构的。

4、Map接口

Map也是接口,但没有继承Collection接口。该接口描述了从不重复的键到值的映射。Map接口用于维护键/值对(key/value pairs)。

特征:它描述了从不重复的键到值的映射。

两个重要的实现类:HashMap和TreeMap

1.HashMap,中文叫散列表,基于哈希表实现,特点就是键值对的映射关系。一个key对应一个Value。HashMap中元素的排列顺序是不固定的。更加适合于对元素进行插入、删除和定位。

2.TreeMap,基于红黑书实现。TreeMap中的元素保持着某种固定的顺序。更加适合于对元素的顺序遍历。

5、Iterator接口

Iterator接口,在C#里有例外一种说法IEnumerator,他们都是集合访问器,用于循环访问集合中的对象。

所有实现了Collection接口的容器类都有iterator方法,用于返回一个实现了Iterator接口的对象。Iterator对象称作迭代器,Iterator接口方法能以迭代方式逐个访问集合中各个元素,并可以从Collection中除去适当的元素。

[csharp]view plaincopy

print?

Iterator it = collection.iterator();// 获得一个迭代子

while(it.hasNext())

{

Object obj = it.next();// 得到下一个元素

}

6、Comparable接口

Comparable可以用于比较的实现,实现了Comparable接口的类可以通过实现comparaTo方法从而确定该类对象的排序方式。

总结

Collection集合分别派生自Collection和Map接口,Collection有两个常用子接口List和Set,分别表示有序可重复,无序不可重复的集合。而Map存储的是key-value的映射。

链接:https://www.jianshu.com/p/5d25c3577dce

转载于:https://www.cnblogs.com/dayandday/p/10791845.html

哪些类继承了Collection接口相关推荐

  1. List, Set, Map是否继承自Collection接口?

    List, Set, Map是否继承自Collection接口? 答:List,Set是Map不是 转载于:https://www.cnblogs.com/zhaozhaozhang/p/581947 ...

  2. Java多线程(2)--Thread类继承和Runnable接口创建线程

    Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来体现. Thread类的特性 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run() ...

  3. 为何 Map接口不继承Collection接口

    1.首先Map提供的是键值对映射(即Key和value的映射),而collection提供的是一组数据(并不是键值对映射). 如果map继承了collection接口,那么所有实现了map接口的类到底 ...

  4. Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin

    1.容器API的类图结构如下: JAVA的集合类是一种特别有用的工具类,它可以用于存储数量不等的多个对象,并可以实现常用数据结构,如栈,队列等,除此之外,JAVA集合还可用于保存具有映射关系的关联数组 ...

  5. HashMap和Hashtable的区别--List,Set,Map等接口是否都继承自Map接口--Collection和Collections的区别...

    面试题: 1.HashMap和Hashtable的区别?HashMap:线程不安全,效率高,键和值都允许null值Hashtable:线程安全,效率低,键和值都不允许null值ArrayList代替V ...

  6. PHP类继承、接口继承关系概述

    PHP类继承: PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承,比如: 1 class frist{ 2 public function __construct(){ 3 ech ...

  7. java list接口为何要重新声明collection接口的方法_JAVA Collection接口中List Map 和Set的区别(转)...

    Java中的集合包括三大类,它们是Set(集).List(列表)和Map(映射),它们都处于java.util包中,Set.List和Map都是接口,它们有各自的实现类.Set的实现类主要有HashS ...

  8. java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)

    集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public cl ...

  9. 2接口详解_java集合【2】——— Collection接口详解

    一.Collection接口简介 二.Collection源码分析 三.Collection的子类以及子类的实现 3.1 List extend Collection 3.2 Set extend C ...

最新文章

  1. 机翻降重?掩饰抄袭?SCI期刊上的这些「奇言怪语」,不少来自中国作者
  2. 【PC工具】文件夹多文件群体比较工具beyond compare4
  3. Hadoop学习笔记—4.初识MapReduce
  4. 如何在钉钉上开发自己的应用_神操作!老妈让我告诉老板,双十一买钉钉。
  5. Java Streams,第 4 部分: 从并发到并行
  6. HDU多校6 - 6836 Expectation(矩阵树定理+高斯消元求行列式)
  7. 闪屏,default
  8. php控制器增删改查设计,控制器的增删改查操作
  9. JDK 1.8新特性
  10. 自学python买什么书比较好-python官方推荐30本面向初学者的书籍!你看过几本?...
  11. Oracle 学习笔记(Windows 环境下安装 + PL/SQL)
  12. 阵列信号处理-学习笔记003-波束形成
  13. 如何强制卸载Google浏览器,不用担心Google打开为白板,亲测有效。
  14. 记录ubuntu20.04成功编译安装opencv4 c++环境
  15. android自定义相机取景框模仿微信抓取录像实现活体认证
  16. java方法集:大写金额转换数字
  17. Java程序员的搞笑段子
  18. c语言课程设计高校水电费管理系统
  19. 玩机搞机---全网最详细的手机全机型 刷机教程 二
  20. Ubuntu8.04最全问题汇总

热门文章

  1. 笔记本中美化代码的方法
  2. 关于EMF模型的操作,赶紧记下来
  3. canvas反向裁剪技巧
  4. Java各进制之间的转换
  5. navicat 批量插入 测试数据
  6. Hive谓词解析过程分析
  7. GIT文件的三种状态
  8. Android无线调试——抛开USB数据线
  9. unix高级环境编程-基础知识
  10. _beginthreadex 一定要自己写 CloseHandle 可以不用 _endthreadex