首页 > 其他分享 >集合体系结构

集合体系结构

时间:2023-06-18 09:04:07浏览次数:42  
标签:遍历 迭代 索引 元素 泛型 集合 体系结构

集合体系结构

  • List系列集合:添加的元素有序,可重复,有索引

  • Collection:是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的

  • set系列集合:添加的元素无序,不重复,无索引

 

方法名说明
public boolean add(E e) 把给定的对象添加到当前集合中
public void clear() 清空集合中所有的元素
public boolean remove(E e) 把给定对象在当前集合中删除
public contains(Object obj) 判断当前集合中是否包含给定对象
public boolean isEmpty() 判断当前集合是否为空
public int size() 返回集合中元素的个数/集合长度

Collection遍历

迭代器遍历

迭代器在java中的类是iterator,迭代器是集合专用的遍历方式

 

Collection集合获取迭代器

Iterator< E > iterator() 返回迭代器对象,默认指向当前集合的0索引

Iterator中的常用方法

方法说明
boolean hasNest() 判断当前位置是否有元素,有元素返回true,没有返回false
E next() 获取当前位置的元素,并将迭代器对象移向下一个位置

 

  1. 迭代器遍历完毕,指针不会复位

  2. 循环中只能用一次next方法

  3. 迭代器遍历时,不能用集合的方法,进行增加或删除

  4. 如果当前位置没有元素,还要强行获取,会报NosuchElementException

 

增强for遍历

  1. 增强for的底层就是迭代器,为了简化迭代器的代码书写的

  2. 它是JDK5之后出现的,其内部原理是一个lterator迭代器

  3. 所有的单列集合和数组才能用增强for遍历

 

格式:

for(元素的数据类型 变量名: 数组或集合 ){

}

 

for(String s : list){

}

s就是一个第三方变量,在循环过程中 以此表示集合中的每一个数据

 

Lambda表达式遍历

default void forEach(consumer<? super T > action):

List集合

List集合的特有方法

Collection的方法List都继承了

List集合因为有索引,所以多了很多索引的操作方法

方法说明
viod add(int index,E element) 在指定位置插入指定元素
E remove(int index) 删除指定索引的元素,返回被删除的元素
E set(int index,E element) 修改指定索引的元素,返回被修改的元素
E get(int index) 返回指定元素

List集合的遍历方式

  1. 迭代器:遍历过程中需要删除元素

  2. 列表迭代器:遍历过程中需要添加元素

  3. 增强for(仅仅想遍历)

  4. Lambda(仅仅想遍历)

  5. 普通for:遍历时想操作索引

数据结构

计算机底部储存,组织数据方式

栈:后进后出,先进先出

数据进入栈模型的过程称为:压/进栈

数据离开栈模型的过程称为:弹/出栈

队列:先进先出,后进后出

数组:

  1. 查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同(元素在内存中是连续储存的)

  2. 删除效率低:要将原始数据删除,同时后面每个数据前移

  3. 添加效率低:添加位置后的每个数据后移,再添加元素

链表

链表中的节点是独立的对象,在内存中是不连续的,每个结点包含数据值和下一个结点的地址

链表查询数据慢,无论查询哪个数据都要从头开始找

链表增删相对快

LinkedList集合:双链表,查询慢,首尾操作极快。

 

泛型深入

泛型是JDK5引入的特性,可以在编译阶段约束操作的数据类型并进行检查

泛型的格式:<数据类型>

注意:反省只能支持引用数据类型

好处:
  1. 统一数据类型

  2. 把运行时期的问题提前到了编译时期,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来

 

细节:
  1. 泛型中不能写基本数据类型

  2. 指定泛型的具体类型后,传递数据时,可以传入该类型或子类类型

  3. 如果不写泛型,类型默认是Object

 

方法中形参类型不确定时
  1. 可以使用类名后面定义的泛型< E > 所有方法可用

  2. 可以在方法中申明上定义自己的泛型< E >只有本方法可用

泛型接口的使用方式:
  1. 实现类给出具体的类型

  2. 实现类延续泛型,创建实现类对象时再确定类型

泛型的通配符

反省不具备继承性,但数据具备继承性

?表示不确定类型

? extends E:表示可以传递E或者E的所有子类类型

? super E :可以传递E或E所有父类类型

应有场景

  1. 如果我们在定义类,方法,接口的时候,如果类型无法确定,就可以定义泛型类,泛型方法,泛型接口

  2. 如果类型不确定,但是能知道以后只能传递某个继承体系中的,就可以用泛型的通配符

标签:遍历,迭代,索引,元素,泛型,集合,体系结构
From: https://www.cnblogs.com/longlonglong777/p/17488674.html

相关文章

  • 【技术积累】Java中的集合框架【一】
    什么是Java集合框架?Java集合框架是Java编程语言中提供的一组接口、实现和算法,用于存储和操作数据集合。集合框架可以让程序员更加高效地组织和操作数据,而无需手动实现底层数据结构。Java集合框架的优点是:提供了丰富、灵活的数据结构和算法,让程序员可以更加高效地完成各种数据......
  • Java_Base7之接口和抽象类、集合类ArrayList、HashSet、HashMap
    一、接口和抽象类(了解)接口:规则,规范行为。只能有抽象方法,一个类可以同时实现多个接口,必须重写所有抽象方法。 接口与接口是继承,接口与类是实现。接口是对继承的补充。 interfaceimplements定义一个接口publicinterfaceInter{ //默认修饰符publicabstract可以省略 pu......
  • 哈工大体系结构lab3 —— 流水线处理器的verilog实现
    流水线处理器的verilog实现个人认为我码风还算可以,如果我的代码有写的错误/值得改进之处,欢迎指出!!base版本设计图如下,WB阶段有一个MUX没画,因为没地方了(懒了)哈哈最后版本跟我最开始写出来的框架有些许变化,如果你看到了让你不知所以然的代码,大概率是修锅的时候造的。。CPU.v`timesc......
  • JAVA集合
    一、集合框架概览Java集合也叫做容器,由两大接口派生而来,一个是collection接口,主要用于存放单一元素,另一个是map接口,用于存放键值对。collection有三个子接口:list、set、queue。相较于数组,Java集合的优势在于它们的大小可变、支持泛型、具有内建算法,比如add(),remove()等。 l......
  • Python数据类型-字典与集合
    """题目1:下面关于字典的定义正确的是:CA.d={1,}B.d={1,2:3,4}C.d={'name':'xinlan','age':18}D.d={[1,2]:[3,4],'age':18}"""#题目2:请创建一个字典用来表示你自己的个人信息。有哪些key由你自己来决定。my_info={'name':&......
  • Day09-集合
    集合可以动态的保存任意多个类型,使用比较方便提供了一系列方便的操作对象:add、remove、set、get等使用集合添加,删除新元素的示意代码简洁了集合主要是两组(单列集合、双列集合)collection接口有两个重要的子接口ListSet,他们的实现子类都是单列集合Map接口的实现......
  • 位运算与集合
    前言在刷LeetCode的时候,我们常常碰到需要枚举同时选择几个元素,或者说枚举选择一个集合的情况,即同时选择$\lbrace0,1,2\rbrace$或者$\lbrace0,1,3\rbrace$等,这里集合中的数字表示要选择的元素的索引。通常情况下,我们往往会使用哈希表来表示集合,好处在于可以方便的在$O(......
  • [ARM汇编]ARM体系结构简介—1.2.1 ARM处理器的历史与发展
    ARM(Advanced RISC Machine,先进的精简指令集计算机)处理器是一种广泛应用于嵌入式系统的处理器架构,具有低功耗、高性能、低成本等特点。接下来,我们将介绍ARM处理器的历史与发展。ARM处理器的历史ARM处理器的历史可以追溯到1983年,当时英国的Acorn电脑公司为了研发一款新......
  • Kotlin 集合对象的单条件和多条件排序
    原文:Kotlin集合对象的单条件和多条件排序-Stars-One的杂货小窝本文不是太难的东西,因为sortedWith之前没怎么用过,所以就记录下平常开发经常使用到List,Map等数据集合类型,也会经常遇到排序的问题,可以直接使用sortedBy或sortedByDescending排序多条件则是使用sortedWith,......
  • python基础知识——内置数据结构(集合)
    python中的set是指一系列无序元素的集合,其中的元素都是相异的,常见的操作包括集合的并集,交集和补集等操作。1、set的创建格式set_name={value1,value2,...}创建空的集合set_name=set()注意:在创建空的集合的时候不能使用set_name={}这样创建出来的是字典。例如animals......