java学习-集合

为什么有集合?

自动扩容

数组:长度固定,可以存基本数据类型和引用数据类型

集合:长度可变,可以存引用数据类型,基本数据类型的话需要包装类

ArrayList

public class studentTest {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();boolean res=list.add("aaa");System.out.println(res); //trueSystem.out.println(list);//[aaa]list.add("bbb");list.add("cccc");System.out.println(list); //[aaa, bbb, cccc]//删除boolean res1=list.remove("aaa");System.out.println(res1); //trueSystem.out.println(list);//[bbb, cccc]//根据索引删除,返回被删除元素String str=list.remove(0);System.out.println(str);//bbb//修改,返回旧值String res2=list.set(0,"000");System.out.println(res2);//ccccSystem.out.println(list);//[000]//查询String str3=list.get(0);System.out.println(str3);//000//获取长度System.out.println(list.size());//1}}

案例 创建集合,添加元素,遍历

public class studentTest {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();list.add("bhjhsd");list.add("dwshv");list.add("fs2552");System.out.print("[");for (int i = 0; i <list.size() ; i++) {if(i==list.size()-1){System.out.println(list.get(i)+"]");}else{System.out.print(list.get(i)+", ");}}}}

案例 定义一个集合 添加数字,遍历。

包装类  

public class studentTest {public static void main(String[] args) {ArrayList<Integer> list=new ArrayList<>();list.add(1);list.add(3);list.add(5);System.out.print("[");for (int i = 0; i <list.size() ; i++) {if(i==list.size()-1){System.out.println(list.get(i)+"]");}else{System.out.print(list.get(i)+", ");}}
//[1, 3, 5]}}

案例 添加学生类对象

//存储学生信息
public class Student{private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
public class studentTest {public static void main(String[] args) {ArrayList<Student> list=new ArrayList<>();Student s1=new Student("lisa",15);Student s2=new Student("bob",18);Student s3=new Student("anna",17);list.add(s1);list.add(s2);list.add(s3);for (int i = 0; i < list.size(); i++) {Student stu=list.get(i);System.out.println(stu.getName()+", "+stu.getAge());}}
//lisa, 15
//bob, 18
//anna, 17}

键盘录入学生信息:

public class studentTest {public static void main(String[] args) {ArrayList<Student> list=new ArrayList<>();Scanner sc=new Scanner(System.in);for (int i = 0; i <3 ; i++) {Student stu =new Student();System.out.println("输入学生姓名");String name=sc.next();System.out.println("输入学生年龄");int age=sc.nextInt();stu.setAge(age);stu.setName(name);list.add(stu);}for (int i = 0; i <list.size() ; i++) {Student s=list.get(i);System.out.println(s.getName()+", "+s.getAge());}
//hbkjsd, 12
//dv, 15
//dvg, 13}}

案例 添加用户对象并判断是否存在

public class User {private String id;private String username;private String password;public User() {}public User(String id, String username, String password) {this.id = id;this.username = username;this.password = password;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}
public class userTest {public static void main(String[] args) {ArrayList<User> list =new ArrayList<>();User u1=new User("001","zhangsan","123456");User u2=new User("002","lisi","12354526");User u3=new User("003","wangwu","123dfssdf6");list.add(u1);list.add(u2);list.add(u3);System.out.println(contain(list,"002"));}public static boolean contain(ArrayList<User> list,String id){for (int i = 0; i <list.size() ; i++) {boolean res=list.get(i).getId().equals(id);if(res){return true;}}return false;}}

更改,存在返回索引,不存在返回-1

public class userTest {public static void main(String[] args) {ArrayList<User> list =new ArrayList<>();User u1=new User("001","zhangsan","123456");User u2=new User("002","lisi","12354526");User u3=new User("003","wangwu","123dfssdf6");list.add(u1);list.add(u2);list.add(u3);System.out.println(contain(list,"002"));}public static int contain(ArrayList<User> list,String id){for (int i = 0; i <list.size() ; i++) {boolean res=list.get(i).getId().equals(id);if(res){return i;}}return -1;}}

案例 创建手机对象,低于价格的返回

//把价格低于3000的返回
public class phoneTest {public static void main(String[] args) {ArrayList<Phone> list =new ArrayList<>();Phone p1=new Phone("xiaomi",1000);Phone p2=new Phone("pingguo",8000);Phone p3=new Phone("xchuizi",2999);list.add(p1);list.add(p2);list.add(p3);ArrayList<Phone> reslist=getPhoneInfo(list);for (int i = 0; i < reslist.size(); i++) {Phone p=reslist.get(i);System.out.println(p.getBrand()+", "+p.getPrice());}}public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list){ArrayList<Phone> reslist=new ArrayList<>();for (int i = 0; i < list.size(); i++) {Phone p=list.get(i);int price=p.getPrice();if(price<3000){reslist.add(p);}}return reslist;}}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB GUI设计(基础)

一、目的和要求 1、熟悉和掌握MATLAB GUI的基本控件的使用及属性设置。 2、熟悉和掌握通过GUIDE创建MATLAB GUI的方法。 3、熟悉和掌握MATLAB GUI的菜单、对话框及文件管理框的设计。 4、熟悉和掌握MATLAB GUI的M文件编写。 5、了解通过程序创建MATLAB GUI的方法。 二、内…

【工具变量】中国省级及地级市保障性住房数据集(2010-2023年)

一、测算方式&#xff1a;参考顶刊《世界经济》蔡庆丰&#xff08;2024&#xff09;老师的研究&#xff0c;具体而言&#xff0c;本文将土地用途为经济适用住房用地、廉租住房用地、公共租赁住房用地、共有产权住房用 地等类型的土地定义为具有保障性住房用途的土地。根据具有保…

第T8周:Tensorflow实现猫狗识别(1)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 具体实现 &#xff08;一&#xff09;环境 语言环境&#xff1a;Python 3.10 编 译 器: PyCharm 框 架: &#xff08;二&#xff09;具体步骤 from absl.l…

Day 18

修建二叉搜索树 link&#xff1a;669. 修剪二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 思路分析 注意修剪的时候要考虑到全部的节点&#xff0c;即搜到到限定区间小于左值或者大于右值时还需要检查当前不符合区间大小节点的右子树/左子树&#xff0c;不能直接返回n…

核间通信-Linux下RPMsg使用与源码框架分析

目录 1 文档目的 2 相关概念 2.1 术语 2.2 RPMsg相关概念 3 RPMsg核间通信软硬件模块框架 3.1 硬件原理 3.2 软件框架 4 使用RPMsg进行核间通信 4.1 RPMsg通信建立 4.1.1 使用名称服务建立通信 4.1.2 不用名称服务 4.2 RPMsg应用过程 4.3 应用层示例 5 RPMsg内核…

常用Adb 命令

# 连接设备 adb connect 192.168.10.125# 断开连接 adb disconnect 192.168.10.125# 查看已连接的设备 adb devices# 安装webview adb install -r "D:\webview\com.google.android.webview_103.0.5060.129-506012903_minAPI23(arm64-v8a,armeabi-v7a)(nodpi)_apkmirror.co…

高质量代理池go_Proxy_Pool

高质量代理池go_Proxy_Pool 声明&#xff01; 学习视频来自B站up主 ​泷羽sec​​ 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章 笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以…

有关博客博客系统的测试报告 --- 初次进行项目测试篇

文章目录 前言一、博客系统的项目背景二、博客系统的项目简介1.后端功能1.1 用户管理1.2 博客管理1.3 权限管理 2.前端功能2.1 用户界面 测试计划测试工具、环境设计的测试动作功能测试访问博客登录页面博客首页测试博客详情页博客编辑页 自动化测试自动化测试用例自动化测试脚…

物业管理系统的设计和实现

一、项目背景 物业管理系统在现代城市化进程中起着至关重要的作用。 随着居民生活水平的提高和信息技术的迅猛发展&#xff0c;传统的物业管理模式已不能满足业主和管理者的需求。 为了提高管理效率、降低运营成本、提升服务质量&#xff0c;设计并实现一个集成化、智能化的物业…

JDBC编程---Java

目录 一、数据库编程的前置 二、Java的数据库编程----JDBC 1.概念 2.JDBC编程的优点 三.导入MySQL驱动包 四、JDBC编程的实战 1.创造数据源&#xff0c;并设置数据库所在的位置&#xff0c;三条固定写法 2.建立和数据库服务器之间的连接&#xff0c;连接好了后&#xff…

快速图像识别:落叶植物叶片分类

1.背景意义 研究背景与意义 随着全球生态环境的变化&#xff0c;植物的多样性及其在生态系统中的重要性日益受到关注。植物叶片的分类不仅是植物学研究的基础&#xff0c;也是生态监测、农业管理和生物多样性保护的重要环节。传统的植物分类方法依赖于人工观察和专家知识&…

数字化那点事:一文读懂物联网

一、物联网是什么&#xff1f; 物联网&#xff08;Internet of Things&#xff0c;简称IoT&#xff09;是指通过网络将各种物理设备连接起来&#xff0c;使它们可以互相通信并进行数据交换的技术系统。通过在物理对象中嵌入传感器、处理器、通信模块等硬件&#xff0c;IoT将“…

IntelliJ+SpringBoot项目实战(十)--常量类、自定义错误页、全局异常处理

一、常量类 在项目开发中&#xff0c;经常需要约定一些常量&#xff0c;比如接口返回响应请求指定状态码、异常类型、默认页数等&#xff0c;为了增加代码的可阅读性以及开发团队中规范一些常量的使用&#xff0c;可开发一些常量类。下面有3个常量类示例&#xff0c;代码位于op…

ubuntu20.04的arduino+MU编辑器安装教程

arduino 按照这个博客&#xff0c;是2.3版本的&#xff1a; Ubuntu20.04/22.04 安装 Arduino IDE 2.x_ubuntu ide-CSDN博客https://blog.csdn.net/michaelchain/article/details/128744935以下这个博客是1.8版本的 在ubuntu系统安装Arduino IDE的方法_ubuntu arduino ide-CS…

Docker核心概念总结

本文只是对 Docker 的概念做了较为详细的介绍&#xff0c;并不涉及一些像 Docker 环境的安装以及 Docker 的一些常见操作和命令。 容器介绍 Docker 是世界领先的软件容器平台&#xff0c;所以想要搞懂 Docker 的概念我们必须先从容器开始说起。 什么是容器? 先来看看容器较为…

Redis ⽀持哪⼏种数据类型?适⽤场景,底层结构

目录 Redis 数据类型 一、String&#xff08;字符串&#xff09; 二、Hash&#xff08;哈希&#xff09; 三、List&#xff08;列表&#xff09; 四、Set&#xff08;集合&#xff09; 五、ZSet(sorted set&#xff1a;有序集合) 六、BitMap 七、HyperLogLog 八、GEO …

uniapp接入BMapGL百度地图

下面代码兼容安卓APP和H5 百度地图官网&#xff1a;控制台 | 百度地图开放平台 应用类别选择《浏览器端》 /utils/map.js 需要设置你自己的key export function myBMapGL1() {return new Promise(function(resolve, reject) {if (typeof window.initMyBMapGL1 function) {r…

Docker+Nginx | Docker(Nginx) + Docker(fastapi)反向代理

在DockerHub搜 nginx&#xff0c;第一个就是官方镜像库&#xff0c;这里使用1.27.2版本演示 1.下载镜像 docker pull nginx:1.27.2 2.测试运行 docker run --name nginx -p 9090:80 -d nginx:1.27.2 这里绑定了宿主机的9090端口&#xff0c;只要访问宿主机的9090端口&#…

AmazonS3集成minio实现https访问

最近系统全面升级到https&#xff0c;之前AmazonS3大文件分片上传直接使用http://ip:9000访问minio的方式已然行不通&#xff0c;https服务器访问http资源会报Mixed Content混合内容错误。 一般有两种解决方案&#xff0c;一是升级minio服务&#xff0c;配置ssl证书&#xff0c…

人工智能|计算机视觉——微表情识别(Micro expression recognition)的研究现状

一、简述 微表情是一种特殊的面部表情,与普通的表情相比,微表情主要有以下特点: 持续时间短,通常只有1/25s~1/3s;动作强度低,难以察觉;在无意识状态下产生,通常难以掩饰或伪装;对微表情的分析通常需要在视频中,而普通表情在图像中就可以分析。由于微表情在无意识状态…