集合java
1.集合
ArrayList
集合和数组的优势对比:
长度可变
添加数据的时候不需要考虑索引,默认将数据添加到末尾
package com.itheima;import java.util.ArrayList;/*public boolean add(要添加的元素) | 将指定的元素追加到此集合的末尾 |
| public boolean remove(要删除的元素) | 删除指定元素,返回值表示是否删除成功
| public E remove(int index) | 删除指定索引处的元素,返回被删除的元素
| public E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素
| public E get(int index) | 返回指定索引处的元素
| public int size() | 返回集合中的元素的个数*/
public class ArrayListDemo2 {public static void main(String[] args) {//1.创建一个集合对象ArrayList<String> list = new ArrayList<String>();//2.添加元素list.add("aaa");list.add("bbb");list.add("ccc");list.add("ddd");//3.删除元素boolean result = list.remove("aaa");System.out.println(list);//删除失败返回flast//根据索引删除元素,返回被删除的元素String str = list.remove(2);System.out.println(str);System.out.println(list);//4.修该元素String str2 = list.set(0, "aaa");System.out.println(str2);//返回被覆盖的元素System.out.println(list);//5.查寻元素String str3 = list.get(0);System.out.println(str3);//返回指定索引处的元素System.out.println(list);//6.遍历集合for (int i = 0; i < list.size(); i++) {//list.get(i)元素System.out.println(list.get(i));}}
}
package com.itheima;
import java.util.ArrayList;
import java.util.List;
//定义一个方法,讲价格低于3000的手机信息打印出啦
public class PhoneTest {public static void main(String[] args) {//1.创建集合ArrayList<Phone> list = new ArrayList<Phone>();//2.创建对象Phone p1 = new Phone("苹果",1000);Phone p2 = new Phone("小米",2200);Phone p3 = new Phone("锤子",3200);//3.添加数据list.add(p1);list.add(p2);list.add(p3);//4.调用方法ArrayList<Phone> phoneInfolist = getPhoneInfo(list);//5.遍历集合for (int i = 0; i < phoneInfolist.size(); i++) {Phone p = phoneInfolist.get(i);System.out.println(p.getBrand()+" "+p.getPrice());}}//如果说我们要返回多个数据,可以把这些数据先放到一个容器当中,再把容器返回//集合,数组public static ArrayList<Phone> getPhoneInfo( ArrayList<Phone> list ) {ArrayList<Phone> resultlist=new ArrayList<>();for (int i = 0; i < list.size(); i++) {Phone p = list.get(i);int price = p.getPrice();if(price<3000){resultlist.add(p);//手机对象p存再集合resultlist里}}return resultlist;}
}
package com.itheima;
import java.util.ArrayList;public class ArrayListDemo7Case {public static void main(String[] args) {//1.创建集合ArrayList<User> list = new ArrayList<User>();//2.创建三个用户对象User u1=new User("001","zhngsan","123");User u2=new User("002","li","456");User u3=new User("003","zhngsan","789");//3.添加元素list.add(u1);list.add(u2);list.add(u3);//4.调用方法看id是否存在int flag = contains(list, "002");if(flag>=0){User u = list.get(flag);System.out.println(u.getId());}else{System.out.println("不存在");}}public static int contains(ArrayList<User> list,String id){for (int i = 0; i < list.size(); i++) {if(list.get(i).getId().equals(id)){return i;}}return -1;}
}
package com.itheima;import java.util.ArrayList;
import java.util.Scanner;public class ArrayListDemo6 {public static void main(String[] args) {//1.创建集合ArrayList<Student> list=new ArrayList<>();//长度为0//2.键盘录入学生的信息并添加到集合当中Scanner sc=new Scanner(System.in);for(int i=0;i<3;i++){Student s=new Student();System.out.println("请输入学生姓名");String name=sc.next();System.out.println("请输入学生的年龄");int age=sc.nextInt();//把name和age赋值给学生对象s.setName(name);s.setAge(age);//把学生对象添加在集合中list.add(s);}//遍历集合for (int i = 0; i < list.size(); i++) {Student stu=list.get(i);System.out.println(stu.getName()+" "+stu.getAge());}}
}
/如果说我们要返回多个数据,可以把这些数据先放到一个容器当中,再把容器返回
//集合,数组
package com.itheima;
import java.util.ArrayList;
import java.util.List;
//定义一个方法,讲价格低于3000的手机信息打印出啦
public class PhoneTest {public static void main(String[] args) {//1.创建集合ArrayList<Phone> list = new ArrayList<Phone>();//2.创建对象Phone p1 = new Phone("苹果",1000);Phone p2 = new Phone("小米",2200);Phone p3 = new Phone("锤子",3200);//3.添加数据list.add(p1);list.add(p2);list.add(p3);//4.调用方法ArrayList<Phone> phoneInfolist = getPhoneInfo(list);//5.遍历集合for (int i = 0; i < phoneInfolist.size(); i++) {Phone p = phoneInfolist.get(i);System.out.println(p.getBrand()+" "+p.getPrice());}}//如果说我们要返回多个数据,可以把这些数据先放到一个容器当中,再把容器返回//集合,数组public static ArrayList<Phone> getPhoneInfo( ArrayList<Phone> list ) {ArrayList<Phone> resultlist=new ArrayList<>();for (int i = 0; i < list.size(); i++) {Phone p = list.get(i);int price = p.getPrice();if(price<3000){//如果当前手机的价格低于3000,那么就把手机对象添加在resultlist当中resultlist.add(p);//手机对象p存再集合resultlist里}}return resultlist;}
}
相关文章:

集合java
1.集合 ArrayList 集合和数组的优势对比: 长度可变 添加数据的时候不需要考虑索引,默认将数据添加到末尾 package com.itheima;import java.util.ArrayList;/*public boolean add(要添加的元素) | 将指定的元素追加到此集合的末尾 | | p…...

智能体(Agent)实战——从gpts到auto gen
一.GPTs 智能体以大模型作为大脑,同时配备技能,使其能够完成具体的任务。同时,为了应用于垂直领域,我们需要为大模型定义一个角色,并构建知识库。最后,定义完整的流程,使其完成整个任务。以组会…...

PyTorch 张量数据类型
【数据类型】Python 与 PyTorch 常见数据类型对应: 用 a.type() 获取数据类型,用 isinstance(a, 目标类型) 进行类型合法化检测 >>> import torch >>> a torch.randn(2,3) >>> a tensor([[-1.7818, -0.2472, -2.0684],[ 0.…...

奇思妙想-可以通过图片闻见味道的设计
奇思妙想-可以通过图片闻见味道的设计 偷闲半日享清闲,炭火烧烤乐无边。肉串飘香引客至,笑语欢声绕云间。人生难得几回醉,且把烦恼抛九天。今宵共饮开怀酒,改日再战新篇章。周四的傍晚,难得的闲暇时光让我与几位挚友相…...
装饰者模式(设计模式)
装饰模式就是对一个类进行装饰,增强其方法行为,在装饰模式中,作为原来的这个类使用者还不应该感受到装饰前与装饰后有什么不同,否则就破坏了原有类的结构了,所以装饰器模式要做到对被装饰类的使用者透明,这…...
ADB调试命令大全
目录 前言命令大全1.显示当前运行的全部模拟器:adb devices2.启动ADB: adb start-server3.停止ADB: adb kill-server4.安装应用程序: adb install -r [apk文件]5.卸载应用程序: adb uninstall [packagename]6.将手机设备中的文件copy到本地计…...

查看npm版本异常,更新nvm版本解决问题
首先说说遇见的问题,基本上把nvm,npm的坑都排了一遍 nvm版本导致npm install报错 Unexpected token ‘.‘install和查看node版本都正确,结果查看npm版本时候报错 首先就是降低node版本… 可以说基本没用,如果要降低版本的话&…...
计算机行业
计算机行业环境分析 2022.01.12 计算机行业环境分析 计算机专业就业前景 随着科技的进步和信息事业的发展,尤其是计算机技术的发展与网络应用的逐渐普及。计算机已成为人们工作和生活中不可缺少的东西。IT行业迅猛发展,就业工作岗位也比比皆是。在最近…...

各种机器学习算法的应用场景分别是什么(比如朴素贝叶斯、决策树、K 近邻、SVM、逻辑回归最大熵模型)?
2023简直被人工智能相关话题席卷的一年。关于机器学习算法的热度,也再次飙升,网络上一些分享已经比较老了。那么今天借着查询和学习的机会,我也来浅浅分享下目前各种机器学习算法及其应用场景。 为了方便非专业的朋友阅读,我会从算…...
SQLite JDBC驱动程序
SQLite JDBC驱动程序下载地址: 下载地址...

Postgre 调优工具pgBadger部署
一,简介: pgBadger(日志分析器)类似于oracle的AWR报告(基于1小时,一天,一周,一月的报告),以图形化的方式帮助DBA更方便的找到隐含问题。 pgbadger是为了提高…...

【云原生】Kubernetes----Helm包管理器
目录 引言 一、Helm概述 1.Helm价值概述 2.Helm的基本概念 3.Helm名词介绍 二、安装Helm 1.下载二进制包 2.部署Helm环境 3.添加补全信息 三、使用Helm部署服务 1.创建chart 2.查看文件信息 3.安装chart 4.卸载chart 5.自定义chart服务部署 6.版本升级 7.版本…...
Bootstrap 5 进度条
Bootstrap 5 进度条 引言 Bootstrap 5 是目前最流行的前端框架之一,它提供了一套丰富的组件和工具,帮助开发者快速构建响应式、移动设备优先的网页。在本文中,我们将重点探讨 Bootstrap 5 中的进度条组件,包括其基本用法、定制选…...

MySQL查询数据库中所有表名表结构及注释以及生成数据库文档
MySQL查询数据库中所有表名表结构及注释 生成数据库文档在后面!!! select t.TABLE_COMMENT -- 数据表注释 , c.TABLE_NAME -- 表名称 , c.COLUMN_COMMENT -- 数据项 , c.COLUMN_NAME -- 英文名称 , -- 字段描述 , upper(c.DATA_TYPE) as …...
Redis缓存穿透、缓存雪崩和缓存击穿的解决方案
Redis缓存穿透、缓存雪崩和缓存击穿的解决方案 引言 Redis作为当前非常流行的内存数据结构存储系统,以其高性能和灵活性被广泛应用于缓存、消息队列、排行榜等多种场景。然而,在实际使用过程中,可能会遇到缓存穿透、缓存雪崩和缓存击穿等问…...

如何解决javadoc一直找不到路径的问题?
目录 一、什么是javadoc二、javadoc为什么会找不到路径三、如何解决javadoc一直找不到路径的问题 一、什么是javadoc Javadoc是一种用于生成Java源代码文档的工具,它可以帮助开发者生成易于阅读和理解的文档。Javadoc通过解析Java源代码中的注释,提取其…...

redis 笔记2之哨兵
文章目录 一、哨兵1.1 简介1.2 实操1.2.1 sentinel.conf1.2.2 问题1.2.3 哨兵执行流程和选举原理1.2.4 使用建议 一、哨兵 1.1 简介 上篇说了复制,有个缺点就是主机宕机之后,从机只会原地待命,并不能升级为主机,这就不能保证对外…...

LVS+Keepalived NGINX+Keepalived 高可用群集实战部署
Keepalived及其工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 VRRP协议(虚拟路由冗余协议) 是针对路由器的一种备份解决方案由多台路由器组成一个热备组,通过共用的…...

Mybatis做批量操作
动态标签foreach,做过批量操作,但是foreach只能处理记录数不多的批量操作,数据量大了后,先不说效率,能不能成功操作都是问题,所以这里讲一讲Mybatis正确的批量操作方法: 在获取opensession对象…...

Python | 中心极限定理介绍及实现
统计学是数据科学项目的重要组成部分。每当我们想从数据集的样本中对数据集的总体进行任何推断,从数据集中收集信息,或者对数据集的参数进行任何假设时,我们都会使用统计工具。 中心极限定理 定义:中心极限定理,通俗…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...