(day5) 自学Java——ArrayList集合

news2025/1/24 1:28:37

目录

1. ArrayList

 2.集合练习

(1)添加字符串和整数,并遍历

(2)添加学生对象并遍历

(3)查找用户是否存在

(4)返回多个数据


1. ArrayList

数组有个致命的弱点,那就是创建时需要指定其长度,并且在使用时长度不可改变。

在Java教程中知道,要统计的数据量不可能是固定不变的,所以我们需要一个拥有可变长度的容器来储存,而这个容器就是集合。

创建集合:ArrayList<String> list = new ArrayList<>();

增删改查:

集合中不能直接添加基本数据类型,要变成对应包装类

 2.集合练习

(1)添加字符串和整数,并遍历

  • 需求:定义一个集合,添加字符串,并进行遍历
  • 遍历格式参照:[元素1,元素2,元素3]。
import java.util.ArrayList;

public class ArraryListTest {
    public static void main(String[] args) {
        ArrayList<String> sl=new ArrayList<>();
        sl.add("树深时见鹿");
        sl.add("溪午不闻钟");
        sl.add("野竹分青霭");
        sl.add("飞泉挂碧峰");
        String result="";
        String end="";
        for (int i = 0; i < sl.size(); i++) {
            if (i==sl.size()-1){
                end=sl.get(i);
            }
            else {
                result=result+sl.get(i)+",";
            }
        }
        String resultEnd=result+end;
        System.out.println("["+resultEnd+"]");
    }
}
  • 需求:定义一个集合,添加数字,并进行遍历。
  • 遍历格式参照:[元素1,元素2,元素3]。
import java.util.ArrayList;

public class ArraryListTest {
    public static void main(String[] args) {
        ArrayList<Integer> sl=new ArrayList<>();
        sl.add(1);
        sl.add(2);
        sl.add(3);
        sl.add(4);
        String result="";
        Integer end=0;
        for (int i = 0; i < sl.size(); i++) {
            if (i==sl.size()-1){
                end=sl.get(i);
            }
            else {
                result=result+sl.get(i)+",";
            }
        }
        String resultEnd=result+end;
        System.out.println("["+resultEnd+"]");
    }
}

(2)添加学生对象并遍历

  • 需求:定义一个集合,添加一些学生对象,并进行遍历
  • 学生类的属性为:姓名,年龄。
import java.util.ArrayList;

public class ArraryListTest {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<Student> sl=new ArrayList<>();
        //2.创建学生对象
        Student s1=new Student("张三",20);
        Student s2=new Student("李四",21);
        Student s3=new Student("赵五",22);
        //3.将对象添加到集合
        sl.add(s1);
        sl.add(s2);
        sl.add(s3);
        for (int i = 0; i < sl.size(); i++) {
            System.out.println(sl.get(i).getName()+","+sl.get(i).getAge());
        }
    }
}
  • 需求:定义一个集合,添加一些学生对象,并进行遍历
  • 学生类的属性为:姓名,年龄。
  • 对象的数据来自键盘录入。
import java.util.ArrayList;
import java.util.Scanner;

public class ArraryListTest {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<Student> sl=new ArrayList<>();
        Scanner sc=new Scanner(System.in);
        //2.创建学生对象,给对象赋值
        for (int i = 0; i < 3; i++) {
        //会创建3个对象,将3个不同的地址放到集合
            Student stu=new Student();
            System.out.print("请输入姓名:");
            String name=sc.next();
            stu.setName(name);
            System.out.print("请输入年龄:");
            int age=sc.nextInt();
            stu.setAge(age);
            sl.add(stu);
        }
        //遍历
        for (int i = 0; i < sl.size(); i++) {
            System.out.println(sl.get(i).getName()+","+sl.get(i).getAge());
        }
    }
}

(3)查找用户是否存在

 需求:

  • 1.main方法中定义一个集合,存入三个用户对象。用户属性:id,username,password
  • 2.要求:定义一个方法,根据id查找对应的用户信息。如果存在返回true,不存在返回false。
//用户类
public class Users {
    private String id;
    private String username;
    private String password;

    public Users() {
    }
    public Users(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;
    }
}
import java.util.ArrayList;

public class ArraryListTest {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<Users> sl=new ArrayList<>();
        Users u1=new Users("a01","zhangsan","123456");
        Users u2=new Users("a02","lisi","abcdef");
        Users u3=new Users("a03","zhaowu","abc123");
        sl.add(u1);
        sl.add(u2);
        sl.add(u3);
        System.out.println(search(sl,"a01"));
    }

    public static boolean search(ArrayList<Users> sl,String id) {
        for (int i = 0; i < sl.size(); i++) {
            if(sl.get(i).getId().equals(id)){
                return true;
            }
        }
        return false;
    }
}

(4)返回多个数据

  • 添加手机对象并返回要求的数据
  • 需求:定义Javabean类:Phone。Phone属性:品牌,价格。
  • main方法中定义一个集合,存入三个手机对象。
  • 分别为:小米,1000;苹果,8000;锤子2999.
  • 定义一个方法,将价格低于3000的手机信息返回。
import java.util.ArrayList;

public class ArraryListTest {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<Phone> sl=new ArrayList<>();
        //2.创建对象并添加入集合
        Phone p1=new Phone("小米",1000);
        Phone p2=new Phone("苹果",8000);
        Phone p3=new Phone("锤子",2999);
        sl.add(p1);
        sl.add(p2);
        sl.add(p3);
        //调用compare方法,将价格低于3000的手机信息返回
        ArrayList<Phone>result=compare(sl);
        //遍历
        for (int i = 0; i < result.size(); i++) {
            System.out.println(result.get(i).getBrand()+","+result.get(i).getPrice());
        }
    }
//如果我们要返回多个数据,可以把这些数据先放到一个容器中,再把容器返回(容器可以是集合/数组)
    public static ArrayList<Phone> compare(ArrayList<Phone> sl) {
        ArrayList<Phone> result=new ArrayList<>();
        for (int i = 0; i < sl.size(); i++) {
            if(sl.get(i).getPrice()<3000){
                String brand=sl.get(i).getBrand();
                int price=sl.get(i).getPrice();
                Phone p=new Phone(brand,price);
                result.add(p);
            }
        }
        return result;
    }
}

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

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

相关文章

[ 数据结构 ] 图(Graph)--------深度优先、广度优先遍历

0 基本介绍 为什么要有图? 无论是线性表还是树结构,局限于表示一个直接前驱和一个直接后继的关系(一对一/一对多),当我们需要表示多对多的关系时&#xff0c; 这里我们就用到了图 节点间的连接成为边,节点称为顶点,一个顶点到另一个顶点所经过的边叫路径,边有方向的叫有向图,…

js逆向-某动网演出数据获取

声明 本文仅供学习参考&#xff0c;如有侵权可私信本人删除&#xff0c;请勿用于其他途径&#xff0c;违者后果自负&#xff01; 如果觉得文章对你有所帮助&#xff0c;可以给博主点击关注和收藏哦&#xff01; 前言 目标网站&#xff1a;aHR0cHM6Ly93d3cuc2hvd3N0YXJ0LmNv…

如何远程连接Linux系统服务器

Linux服务器远程连接方法这里给大家普及一下Linux服务器&#xff0c;是一台安装Ubuntu系统的工作站。这类服务器大部分用于程序员开发编程使用&#xff0c;说简单点就是拿来敲代码的。通常需要借助远程连接工具来连接Linux远程服务器&#xff0c;如xshell&#xff1b;putty&…

PostgreSQL实战之物理复制和逻辑复制(五)

目录 PostgreSQL实战之物理复制和逻辑复制&#xff08;五&#xff09; 5 流复制主备切换 5.1 判断主备角色的五种方法 5.2 主备切换之文件触发方式 5.3 主备切换之pg_ctl promote方式 5.4 pg_rewind PostgreSQL实战之物理复制和逻辑复制&#xff08;五&#xff09; 5 流…

Vue作业

文章目录作业1作业2作业3作业4作业1 作业&#xff1a;需要用data保存&#xff1a;商品名、单价、数量&#xff0c;然后显示到页面上&#xff0c;点击按钮可以变更数量&#xff0c;最小值1&#xff0c;减按钮不可用&#xff0c;最大值20&#xff0c;隐藏按钮 总价格应该是 单价…

酒业“新物种”的新思维:用户、品牌、模式

【潮汐商业评论/原创】中国的酒文化源远流长。古人有一万种喝酒的理由&#xff0c;或聚会畅饮&#xff0c;或独酌解忧&#xff0c;而餐桌是酒最常出现的地方。如今&#xff0c;与酒相关的场景日益多元&#xff0c;往往洋溢着青春的气息。一顶帐篷&#xff0c;三两好友围坐&…

一、数据仓库基础理论

数据仓库基础理论一、数据仓库1、概念2、数据仓库分层结构3、为什么要分层二、数据集市三、数据湖1、数据湖和数据仓库一、数据仓库 1、概念 数据仓库&#xff08;Data Warehouse, DW&#xff09;&#xff1a;一个面向主题的、集成的、非易失的、反应历史变化的、用来支持企业…

哈弗品牌发布新能源越野新品类车型:H-DOG

1月6日&#xff0c;哈弗品牌新能源车型哈弗H-DOG在海口新能源车展亮相。哈弗H-DOG针对用户5天通勤、2天郊野、e享时刻三大使用场景打磨&#xff0c;满足用户“可城、可野、可电”的用车需求&#xff0c;是哈弗品牌在新能源轻越野上的全新探索。• 哈弗H-DOG采用了全新的潮野力量…

Sentinel降级策略-RT、异常比例、异常数

Sentinel降级—RT 1&#xff09;RT&#xff1a;平均响应时间&#xff1b;配置平均响应时间为200ms&#xff0c;200ms内就要将请求处理完成&#xff1b; 2&#xff09;注意&#xff1a;Sentinel 默认统计的 RT 上限是4900ms&#xff0c;超出此阈值会算作 4900ms &#xff0c;若…

【PyTorch深度学习实践】05_逻辑斯蒂回归

文章目录1. 分类问题相关数据集1.1 MINIST1.2 CIFAR-102. 回归(Regression)VS分类(Classification)2.1 模型对比2.2 损失函数对比2.3 实现代码对比3. 完整代码之前使用线性回归解决的都是**回归&#xff08;预测&#xff09;**问题&#xff0c;逻辑斯蒂回归模型可以用来解决另一…

MySQL数据库:数据基本的增删改查

一、查询数据 1.查询表内所有数据 select * from 表名; 2.指定列查询 select 字段1, 字段2, …… from 表名; 3.查询字段为表达式 select 表达式1, 表达式2,…… from 表名; 4.起表名查询 如果对查询结果的字段名不满意&#xff0c;还可以自己进行取别名。 select 字段1 …

#Reading Paper# 【序列推荐】Session-based Recommendation with Graph Neural Networks

#论文题目&#xff1a;【序列推荐】SR-GNN: Session-based Recommendation with Graph Neural Networks&#xff08;SR-GNN:基于会话的图神经网络推荐&#xff09; #论文地址&#xff1a;https://arxiv.org/abs/1811.00855 #论文源码开源地址&#xff1a; https://github.com/C…

如何设置Windows文件夹背景为黑色?(其实就是“深色模式”)

大家好。我们直接进入正题! 如何把Windows文件夹背景改成黑色&#xff1f;就像下面这样。 第一步&#xff1a;打开 “个性化” 设置界面 这里介绍两种方法&#xff1a;(1)在电脑桌面 右键——》 个性化 &#xff0c;如下图 (2)点击 开始——》设置 ——》个性化 &#xff0c;如…

Typora+upic的配置

typora upic 的配置 背景说明 本人使用的是Mac book 的M1芯片电脑&#xff0c;为了方便写博客&#xff0c;整理了图片上传的方式&#xff1b; upic是一款上传图片的工具&#xff0c;主要为了帮助写博客上传工具使用的&#xff0c;方便上传图片&#xff1b; 配置七牛云的图床…

如何在 Kubernetes 部署 PostgreSQL

文章目录1. 简介2. 条件3. helm 部署 posgresql3.1 添加 Helm 存储库3.2 默认安装3.3 选参安装3.4 持久存储安装3.4.1 创建 PersistentVolume3.4.2 创建 PersistentVolumeClaim3.4.3 安装 Helm Chart3.4.5 连接到 PostgreSQL 客户端3.5 自定义配置 value.yaml4. 手动部署 postg…

Anaconda、CUDA、Pytorch安装

文章目录Anaconda、CUDA、Pytorch安装安装Anaconda安装CUDA安装cuDNN安装Pytorch小技巧验证原文链接&#xff1a; Tommy Shang的博客Anaconda、CUDA、Pytorch安装 很久没有更新博客&#xff0c;最近给实验室的机器安装Pytorch环境&#xff0c;顺手也把自己的机器装了一遍。 整…

《凤凰项目》读后感

无极限零部件公司的问题不提变更单导致变更引起很多问题&#xff0c;变更登记系统推行不下去不知道自己团队有多少项目在运行导致无法预估人力&#xff0c;进度怎么样&#xff0c;项目管理系统推行不下去安全部门提出各种安全问题&#xff0c;补丁安装审计部门提出各种审计不合…

Java学习之代码块

目录 一、代码块的基本介绍 二、基本语法 注意事项 三、代码块的好处和案例演示 四、注意事项和使用细节 第一点 第二点 第三点 案例演示 第四点 第五点 第六点 第七点 五、练习题 第一题 第二题 考察知识点 结论 结果 一、代码块的基本介绍 代码化块又称为初…

【论文导读】Deep Stable Learning for Out-Of-Distribution Generalization

DWR用到复杂数据集中。 看了一半发现一个博客将的也不错 放在这里Deep Stable Learning for Out-Of-Distribution Generalization_六点先生的博客-CSDN博客_随机傅里叶特征 目标任务&#xff1a; 一般假设&#xff08;训练数据的已知异质性&#xff08;如领域标签&#xff0…

FGH75T65SHD-F155 场截止沟槽 IGBT单管 应用于太阳能逆变器、UPS等多种应用

FGH75T65SHD-F155采用新型场截止 IGBT 技术&#xff0c;为太阳能逆变器、UPS、焊接机、电信、ESS 和 PFC 等低导通和开关损耗至关重要的应用提供最佳性能。 ONsemi安森美IGBT单管系列&#xff1a; FGH40N60SMD FGH60N60SMD FGH75T65SHD-F155 NGTB40N120FL2WG 特性&#x…