码迷,mamicode.com
首页 > 其他好文 > 详细

Collection、List、ArrayList、常见数据结构

时间:2021-04-07 11:12:00      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:而不是   引用   功能   之间   不同的   方式   分支   http   解释   

Collection、List、ArrayList、常见数据结构

集合与数组有什么不同?

  1. 数组的长度是固定的,不能变化。集合可以变化
  2. 内容不同
    1. 数组存储的同一种类型的元素
    2. 而集合可以存储不同类型的元素
  3. 元素的数据类型问题
    1. 数组可以存储基本数据类型,也可以存储引用数据类型
    2. 集合只能存储引用类型

不同的集合类数据结构不同

数据结构:就是数据的存储方式;

集合的继承体系

技术图片

java.utilCollection

技术图片

Collection的交集功能:

  • boolean retainAll(Collection c); A对B做交集
    • 功能解释:
      • 假设有两个集合A、B
      • A对B做交集,最终的结果保存在A中,B不变
      • 返回值表示的是A是否发生过改变

集合的遍历:

其实就是依次获取集合中的每一个元素

  1. Object[ ] toArray :把集合转为数组,可以实现集合的遍历

  2. Iterator iterator():集合迭代器,集合的专用遍历方式

    1. Object next():获取元素,并移动到下一个位置

    2. boolean hasNext();
      如果仍有元素可以迭代,则返回 true。(换句话说,如果 next 返回了元素而不是抛出异常,则返回 true)。 
      
    3. 技术图片

技术图片

迭代器为什么不定义成一个类,而是一个接口?

技术图片

技术图片

每个具体集合都有各自的iterator方法

List集合

list接口集合特点

有序的(存进去和取出来的顺序是一样的),可重复的

List接口的特有功能

技术图片

List集合的特有遍历功能(普通for循环)

技术图片

常见数据结构!

栈:先进后出

技术图片

队列:先进先出

技术图片

数组:查询快,增删慢

  • 存储同一种类型的多个元素的容器。有索引,方便我们的获取

技术图片

链表:查询慢,增删快

技术图片

红黑树:

生活中的树:

技术图片

计算机中的树(倒着)

技术图片

二叉树:分支不能超过两个

技术图片

排序树/查找树:

  • 类比:猜数字小游戏:1-100之间的数字,从50开始猜,一下减去一半

  • 在二叉树的基础上,元素是有大小顺序的;

  • 左子树小,右子树大

技术图片

平衡树:左孩子和右孩子相等

不平衡树:左孩子 != 右孩子

技术图片

红黑树

特点:趋近于平衡树,查询的速度非常快,查询叶子节点最大次数和最小次数不能超过2倍

  • 约束:
    1. 节点可以是红色的或者黑色的
    2. 根节点是黑色的
    3. 叶子节点(空节点)是黑色的
    4. 每个红色节点的子节点都是黑色的
    5. 任何一个节点到其每一个叶子节点的所有路径上 黑色节点数相同

技术图片

List的子类特点

ArrayList:

  • 底层数据结构是数组,查询快,增删慢
  • 线程不安全,效率高

Vector:

  • 底层数据结构是数组,查询快,增删慢
  • 线程安全,效率低

LinkedList:

  • 底层数据结构是链表,查询慢,增删快
  • 线程不安全,效率高

ArrayList集合:

1、去除集合中的重复值(字符串的内容相同)

技术图片

2、去除集合中自定义对象的重复值(对象的成员变量都相同)

技术图片

Vector集合:

LinkedList的特有功能

技术图片

Collection、List、ArrayList、常见数据结构

标签:而不是   引用   功能   之间   不同的   方式   分支   http   解释   

原文地址:https://www.cnblogs.com/hellokaid/p/14620220.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!