Java_集合_单列集合Collection

news/2024/9/28 23:02:06 标签: java, 开发语言

第一章.Collection接口

 Collection<E> 集合名 = new 实现类对象<E>()

常用方法:
  boolean add(E e) : 将给定的元素添加到当前集合中(我们一般调add时,不用boolean接收,因为add一定会成功)
  boolean addAll(Collection<? extends E> c) :将另一个集合元素添加到当前集合中 (集合合并)
  void clear():清除集合中所有的元素
  boolean contains(Object o)  :判断当前集合中是否包含指定的元素
  boolean isEmpty() : 判断当前集合中是否有元素->判断集合是否为空
  boolean remove(Object o):将指定的元素从集合中删除
  int size() :返回集合中的元素个数。
  Object[] toArray(): 把集合中的元素,存储到数组中  

第二章.List集合&实现类

List接口是Collection的子接口,实现类:
  ArrayList     LinkedList       Vector

2.1.ArrayList集合

常用方法:
  boolean add(E e)  -> 将元素添加到集合中->尾部(add方法一定能添加成功的,所以我们不用                                          boolean接收返回值)
  void add(int index, E element) ->在指定索引位置上添加元素
  boolean remove(Object o) ->删除指定的元素,删除成功为true,失败为false
  E remove(int index) -> 删除指定索引位置上的元素,返回的是被删除的那个元素
  E set(int index, E element) -> 将指定索引位置上的元素,修改成后面的element元素
  E get(int index) -> 根据索引获取元素
  int size()  -> 获取集合元素个数

ArrayList():构造一个初始容量为 10 的空列表

ArrayList(int initialCapacity):构造一个具有指定初始容量的空列表

注意:
  a.不是说一new ArrayList.底层就会创建一个长度为10的空数组,而是第一次add的时候才会创建一个长度为10的数组
  b.如果超出了数组的容量,会自动扩容 -> 利用Arrays.copyOf扩容
  c.扩容多少倍?  1.5倍    

2.2.LinkedList集合

LinkedList底层成员
  transient int size = 0;  元素个数
  transient Node<E> first; 第一个节点对象
  transient Node<E> last;  最后一个节点对象

2.3.Vector集合

Vector() 构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量(扩容多少)为零   

如果是空参创建对象,默认容量是2倍   

Vector(int initialCapacity, int capacityIncrement) 使用指定的初始容量和容量增量构造一个空的向量    
initialCapacity:指定数组初始容量
capacityIncrement:容量增量    
如果指定了容量增量,扩容的话就按照指定的容量增量扩容    

第三章.Set集合

Set接口是Collection的子接口
实现类: HashSet     LinkedHashSet        TreeSet
特点:
  a.Set集合中的方法并没有对Collection进行功能上的扩充
  b.Set接口下的实现类都是依靠map实现的

3.1.HashSet集合

是Set接口的实现类

方法:和Collection一样      

HashSet的存储去重复的过程:先比较元素的哈希值(重写hashCode方法,比较对象内容的哈希值),再比较内容(重写equals方法)     如果不重写这两个方法比较的是对象的哈希值

先比较元素哈希值,如果哈希值不一样,直接进行存储
如果哈希值一样,需要再比较内容,
      a.如果哈希值一样,内容不一样(哈希冲突),存
      b.如果哈希值一样,内容也一样,去重复

HashSet存储自定义对象时想要去重复,此对象现需要重写hashCode和equals方法;先比较对象内容的哈希值,再比较对象的内容

3.2. LinkedHashSet 

是HashSet的子类

方法:和HashSet一样  

3.3.TreeSet

是Set接口的实现类

方法:和HashSet一样

构造:
  TreeSet() 按照自然顺序排序(ASCII码)
  TreeSet(Comparator<? super E> comparator) ->按照指定顺序排序


http://www.niftyadmin.cn/n/5682021.html

相关文章

Linux系统中的重定向

目录 一、回顾重定向命令 1.输出重定向 > 2.追加重定向 >> 3.输入重定向 < 二、重定向原理 三、dup2函数 一、回顾重定向命令 1.输出重定向 > echo xxx > filename&#xff1a;将数据写入到文件中 文件不存在则创建文件再写入&#xff1b;文件存在则…

Redis哈希类型详解:从基础命令到实际应用

引言 前边介绍了 Redis 中字符串类型&#xff0c;现在接上篇文章继续学习 Redis 哈希类型的命令和实际应用 哈希&#xff08;Hash&#xff09;类型是一种非常实用的数据结构&#xff0c;以字段-值对的形式存储多个键值对。这里将详细介绍 Redis 哈希类型的使用方法、内部编码…

【RocketMQ】RocketMQ快速入门

&#x1f3af; 导读&#xff1a;该文档介绍了Apache RocketMQ消息队列的基础应用&#xff0c;包括消息发送与接收的基本流程。首先通过创建生产者实例&#xff0c;并指定名称服务器地址&#xff0c;启动后即可发送消息至指定主题。然后创建消费者实例订阅相应主题&#xff0c;并…

MATLAB数据文件读写:2.矩阵数据读取

矩阵数据读取 写入文件–save函数 保存变量到文件中&#xff0c;用于以后使用。 save(fielname) 将当前工作区中所有变量保存到matlab格式的二进制文件filename中。: .mat save(filename, ‘var’,fmt) 将当前工作区中var指定的结构体数组的变量或字段保存到matlab格式的…

线上报名小程序怎么做

在这个数字化、智能化的时代&#xff0c;信息技术的发展正以前所未有的速度改变着我们的生活。无论是学习、工作还是娱乐&#xff0c;互联网都成为了我们不可或缺的一部分。而在线上报名这一领域&#xff0c;小程序的出现更是为广大用户带来了前所未有的便捷与高效。今天&#…

用大模型 vs 垂直大模型

人工智能&#xff08;AI&#xff09;大模型的发展已经进入了一个新的战场&#xff0c;主要分为通用大模型和垂直大模型两个方向。通用大模型因其广泛的应用场景和普适性备受关注&#xff0c;而垂直大模型则因其在特定领域内的高效性和专业性逐渐崭露头角。随着技术的不断演进&a…

基于Node.js+Express+MySQL+VUE实现的在线电影视频点播网站管理系统的设计与实现部署安装

目录 1. 引言 1.1开发背景 1.2开发意义 1.3国内外研究 2. 需求分析 3. 系统架构设计 4. 关键技术选型 5. 功能模块设计 5.1功能图 5.2界面介绍 6. 总结 1. 引言 随着互联网技术的快速发展和普及&#xff0c;人们获取信息的方式发生了巨大变化&#xff0c;其中在…

AI周报(9.22-9.28)

AI应用-Siipet宠物沟通师 Siipet是一款由SiiPet公司推出的创新宠物行为分析相机&#xff0c;旨在通过尖端技术加深宠物与主人之间的情感联系。这款相机利用先进的AI算法&#xff0c;能够自动识别和分析家中宠物的行为&#xff0c;并提供定制化的护理建议。 SiiPet相机的核心功…