1-35 集合框架

news2024/12/22 4:16:27

一 集合的介绍

1.集合是 Java 提出用来进行多个数据存储的 "容器" , 那数组同样具备这样的功能 , 为什么还要有集合 , 数组一旦创建长度固定 , 只能存放一种数据类型 , 不够灵活,因此 Java提出更灵活的操作 , 存放任意引用数据类型 的 容器 -- 集合

2.分类

①单列集合

②双列集合

 

二 拓展:--泛型

1. 泛型含义: 泛指任意的引用数据类型

2.泛型使用格式:<字母>---字母一般是任意的一个,必须是大写

JAVA中规定的泛型字母含义
EElement,表示集合中存储元素的类型
RResult , 表示方法的返回值类型 (二阶段见到)
KKEY , 表示 Map集合中 键 类型
TType , 表示存储的类型
VVALUE , 表示 Map集合中值的类型
?表示不确定的任意一种

3.使用泛型的好处:提高集合存储数据的安全性;一旦集合使用了泛型,等效于数组;实际开发中,一般在集合使用时必须配合泛型使用

二 集合的应用

1.创建集合  

ArrayList list=new ArrayList();

2.打印集合

System.out.println(list)

3.增

①public boolean add(E e)--在集合的尾部追加指定的元素

②public void add(int index,E e)--将指定的元素插入到集合的指定位置  位置是从0开始的

4.删除

①public void clear()---清空集合中所有的元素,但是保留集合的结构

打印时候就是 [ ]

②public E remove(int index)---移除指定位置上的元素,并返回该元素

③public boolean remove(E e)--将指定的元素从集合中移除(如果存在的话)

注意:当执行 移除指定元素操作,如果元素的类型为整数型或字符型,需要将传递的值变成元素对象,才能删除,否则会将传递的值认为是下标,造成集合下标越界

值变对象的方式:(包装类) 值

eg: list.remore((Integer)666) //删除666元素

    list.remore(3)  // 删除3位置上的元素

5.改

public E set(int index,E e)

使用指定的元素修改指定位置上的原有元素,并将原有元素返回

6.查

①public E get(int index)--获取集合中指定位置上的元素

②public int indexOf(E e)--获取指定元素在集合中第一次出现的位置,如果不存在返回-1

③ public int lastIndexOf(E e) 获取指定元素在集合中最后一次出现的位置,如果不存在返回-1

④ public int size() 获取集合中元素的真实个数---打印长度

⑤ public List subList(int beginIndex,int endIndex) 获取集合指定范围所有元素 , 不包含结束位置

7.判

public boolean contains(E e)--判断指定元素是否在集合中

三 拓展: 操作所有单列集合 工厂类

Collections 类

常用的API

public static E max(Collection c) 获取指定单列集合中元素的最大值

public static E min(Collection c) 获取指定单列集合元素的最小值

public static void sort(List list) 给指定的List进行升序排序

 拓展2 -- 将指定的多个散数据 , 同时存放list

由 Arrays 类提供的

public static List asList (T... t)

将任意多个引用数据类型同时存储到集合

2 LinkedList类

3 与ArrayList集合中一致的方法 , 使用和效果都一样

4 增 public void addFirst(E e)

将指定的元素插入到链表的头部

public void addLast(E e)

将指定的元素插入到链表的尾部

5 删除

① public E removeFrist() 移除头部元素

② public E removeLast() 移除链表尾部元素

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1620955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

变电站的组成、作用及功能

变电站的组成、作用及功能 变电站是电力系统的重要组成部分&#xff0c;主要用于实现电力输送、配电和转换的功能。它是将高压电力系统变成低压电力系统的中间站点&#xff0c;它可以将高压输电线路传输的电能通过变压器进行调整&#xff0c;将电能变成适应于城市、乡村和工矿企…

STM32F103单片机C语言模块化编程实战:按键控制LED灯并串口打印详解与示例

一、开发环境 硬件&#xff1a;正点原子 STM32F1精英版 开发板 单片机&#xff1a;STM32F103ZET6 Keil版本&#xff1a;5.32 STM32CubeMX版本&#xff1a;6.9.2 STM32Cube MCU Packges版本&#xff1a;STM32F1 V1.8.5 虽然这里演示的是STM32F103&#xff0c;但是STM32F40…

STM32cubemx和HAL库的使用入门--点亮一颗LED

一&#xff1a;流程介绍 &#xff08;1&#xff09;环境搭建 1 &#xff1a;stm32cubemx安装 2 &#xff1a;stm32xxFW安装 3 &#xff1a;MDK5安装 4 &#xff1a;生成MDK版本project &#xff08;2&#xff09;stm32cubemx创建工程&#xff0c;选择芯片型…

Python中pyside2出现的pyside2 qt platform plugin could be in错误及其解决方法

系统平台&#xff1a;Win10 64bit python版本&#xff1a; python 3.8 使用pip install pyside2安装 pyside2 这是找不到QT平台的插件&#xff0c;这是环境变量QT_QPA_PLATFORM_PLUGIN_PATH出现错误 具体解决方法&#xff1a; 我们可以在每一段程序开始之前设定环境变量&…

Shader实战(3):贴图像素化风格实现

话不多说&#xff0c;将以下shader赋给材质贴上贴图即可。 Shader "HQY/Shader2" //自己改名 {Properties{_Diffuse ("Diffuse", Color) (1,1,1,1)_MainTex ("MainTex", 2D) "white" {}_Specular("Specular", Color) (…

JavaScript 数学对象 Math

Math对象其实就是数学对象&#xff0c;它给我们提供了各种各样的数学功能。 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>首页</title> </head><body><script type"text/javascript"&g…

1.3 初探Spring AOP

本次课&#xff0c;我们深入了解了Spring框架中的AOP&#xff08;面向切面编程&#xff09;概念&#xff0c;它是一种编程范式&#xff0c;用于处理那些在多个类中重复出现、与业务逻辑无关的横切关注点&#xff0c;如日志记录、事务管理等。AOP与OOP&#xff08;面向对象编程&…

【Linux系列】 离线安装vnc 可视化桌面

离线安装vnc 可视化桌面 缘下载安装vnc初始化链接 缘 项目需要下载 下载地址&#xff1a; http://mirror.centos.org/centos/7/updates/x86_64/Packages/tigervnc-license-1.8.0-31.el7_9.noarch.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/libXfont2-2.0.…

38. UE5 RPG 修改火球术的攻击方向以及按住Shift攻击

在前面&#xff0c;我们实现了火球术火球的制作&#xff0c;能够在释放火球术时&#xff0c;角色将播放释放技能动画&#xff0c;并实现了对火球的目标的服务器同步功能。 我们先回忆一下之前完成的内容。 在前面&#xff0c;我们先做了一个Actor&#xff0c;用于承载发射的火…

《九》Qt各种对话框之QColorDialog

前言 QColorDialog类继承于QDialog&#xff0c;是一个设计用来选择颜色的对话框部件。 QColorDialog 在介绍 QColorDialog 之前&#xff0c;我们先简单介绍一下 QColor 类。QColor 类用于表示颜色&#xff0c;支持 RGB&#xff08;红绿蓝&#xff09;三原色表示&#xff0c;也…

使用Web3Modal2.0轻松集成多链钱包连接

随着区块链技术的快速发展&#xff0c;多链互操作性成为了一个重要的趋势。Web3Modal 2.0 作为一款强大的JavaScript库&#xff0c;为开发者提供了更加灵活和便捷的多链钱包集成解决方案。以下内容将介绍Web3Modal 2.0 的新特性&#xff0c;并详细讲解如何使用它来构建一个支持…

如何打造个性化支付宝小程序

支付宝小程序已成为企业与个人展示自身特色、连接用户的重要桥梁。想要快速拥有一个属于自己的支付宝小程序吗&#xff1f;别担心&#xff0c;今天就来分享一个简单又实用的方法——通过套用模板来轻松制作你的支付宝小程序。 选择一个靠谱的小程序模板开发平台是关键。国内主流…

yolov8 区域多类别计数

yolov8 区域多类别计数 1. 基础2. 计数功能2.1 计数模块2.2 判断模块 3. 初始代码4. 实验结果5. 完整代码6. 源码 1. 基础 本项目是在 WindowsYOLOV8环境配置 的基础上实现的&#xff0c;测距原理可见上边文章 2. 计数功能 2.1 计数模块 在指定区域内计数模块 region_point…

算法课程笔记——STL键值对map

map当下标无限的数组 重点是对应关系&#xff0c;一般不修改compare 类比set 没有lowerbound&#xff0c;因为遍历是无序的 ; map不能用sort函数排序 但可用vector转化为map使用 std::set<std::pair<TKEY, mutable TVAL> > ≈ std::map<TKEY, TVAL>

Java基础入门1-2

跟着韩顺平老师的30天入门java课程学习&#xff0c;整理一下自己的笔记&#xff0c;方便回顾知识点和复习。 另附上视频链接&#xff1a;0034_韩顺平Java_变量原理_哔哩哔哩_bilibili 第一章&#xff1a;学习前的了解 第二章&#xff1a;Java概述 2.1什么是程序&#xff1f…

C++ STL标准库,rotate函数详解

rotate翻译 rotate v.&#xff08;使&#xff09;旋转&#xff0c;&#xff08;使&#xff09;转动&#xff1b;&#xff08;人员&#xff09;轮换&#xff0c;轮值&#xff1b;轮种&#xff0c;轮作&#xff1b;定期调换地点&#xff08;或位置&#xff09;adj.&#xff08;…

【WSL】单机大模型前的基础环境配置

前言&#xff1a;在上一篇文章中&#xff0c;我们完成了WSL的部署&#xff0c;但是在大模型搭建&#xff08;尤其是Langchain&#xff09;前&#xff0c;还碰到了不少的坑&#xff0c;查找了不少的文章&#xff0c;所以本篇文章就做一个记录&#xff0c;避免以后再走冤枉路。 …

python学习笔记(集合)

知识点思维导图 # 直接使用{}进行创建 s{10,20,30,40} print(s)# 使用内置函数set()创建 sset() print(s)# 创建一个空的{}默认是字典类型 s{} print(s,type(s))sset(helloworld) print(s) sset([10,20,30]) print(s) s1set(range(1,10)) print(s1)print(max:,max(s1)) print(m…

入门指南:网站UI原型设计的简单方法

从零开始做网站UI原型设计&#xff0c;真的很有成就感&#xff01;那么&#xff0c;UI设计师从零开始做网站UI原型设计需要经历哪些过程呢&#xff1f;设计网站UI原型的第一步&#xff1a;绘制网站线框。本文将主要分为两个阶段&#xff1a;网站线框和原型绘制。 如何制作网站…