Java零基础学习Day12——集合ArrayList

news2025/7/16 22:54:55

一、基本使用

1. 集合与数组

集合只存引用数据类型;长度可变

数组可存基本数据类型、引用数据类型;长度固定

2. 基本格式

ArrayList<String> list = new ArrayList<>();

3. 方法

增、删

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("Hello");  // Adding strings to the list
        list.add("World");
        list.add("Java");   // Adding more strings
        list.add("Python");

        boolean result1 = list.remove("Hello");  // Removing "Hello"
        System.out.println(result1);
        System.out.println(list);

        boolean result2 = list.remove("Word");
        System.out.println(result2);
        System.out.println(list);

        String str = list.remove(0);
        System.out.println(str);
        System.out.println(list);
    }
}

改、查

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("Hello");  // Adding strings to the list
        list.add("World");
        list.add("Java");   // Adding more strings
        list.add("Python");

        //改
        String result = list.set(0, "hi");
        System.out.println(result);
        System.out.println(list);
        //查
        String s = list.get(0);
        System.out.println(s);

        System.out.println("对集合进行遍历:");
        for (int i = 0; i < list.size(); i++) {
            String str = list.get(i);
            System.out.println(str);
        }
    }
}

 

二、练习

1. 集合的遍历方式

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("他");  // Adding strings to the list
        list.add("是");
        list.add("笨");   // Adding more strings
        list.add("蛋");

        System.out.print("[");
        for (int i = 0; i < list.size(); i++) {
            if(i == list.size() - 1)    {
                System.out.print(list.get(i));
            }else{
                System.out.print(list.get(i) + ", ");
            }
        }
        System.out.print("]");
    }
}

2. 添加数字并遍历

基本数据类型对应的包装类

byteByte
shortShort
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter
intInteger

 

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();

        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);

        System.out.print("[");
        for (int i = 0; i < list.size(); i++) {
            if(i == list.size() - 1)    {
                System.out.print(list.get(i));
            }else{
                System.out.print(list.get(i) + ", ");
            }
        }
        System.out.print("]");
    }
}

 

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<Character> list = new ArrayList<>();

        list.add('a');
        list.add('b');
        list.add('c');
        list.add('d');

        System.out.print("[");
        for (int i = 0; i < list.size(); i++) {
            if(i == list.size() - 1)    {
                System.out.print(list.get(i));
            }else{
                System.out.print(list.get(i) + ", ");
            }
        }
        System.out.print("]");
    }
}

 

3. 添加学生对象并遍历

指定学生对象

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();

        Student s1 = new Student("张三", 18);
        Student s2 = new Student("李四", 19);
        Student s3 = new Student("王五", 20);
        Student s4 = new Student("赵六", 21);
        Student s5 = new Student("钱七", 22);

        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        list.add(s5);

        for (int i = 0; i < list.size(); i++) {
            Student str = list.get(i);
            System.out.println(str.getName() + " " + str.getAge());
        }
    }
}

 

键盘录入学生对象

import java.util.ArrayList;
import java.util.Scanner;
public class StringDemo {
    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 s = new Student();
            System.out.println("Enter student name: ");
            s.setName(sc.next());
            System.out.println("Enter student age: ");
            s.setAge(sc.nextInt());

            list.add(s);
        }
        System.out.println(list.size());
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getName()+"\t"+list.get(i).getAge());
        }
    }
}

 

4. 添加用户对象并判断是否存在

返回true或false,返回索引

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;
    }
}

 

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<User> list = new ArrayList<>();
        User u1 = new User("001", "张三", "123456");  // 创建用户对象
        User u2 = new User("002", "李四", "654321");
        User u3 = new User("003", "王五", "123fjie");
        list.add(u1);                                  // 将用户对象添加到集合中
        list.add(u2);
        list.add(u3);

        int index = getIndex(list, "003");          // 调用contains方法判断集合中是否包含指定ID的用户
        System.out.println(index);                   // 输出结果      2
        System.out.println(contains(list, "003"));   // 输出结果      true
    }
    public static int getIndex(ArrayList<User> list, String id) {
        for (int i = 0; i < list.size(); i++) {
            User u = list.get(i);                      // 获取集合中的每个用户对象
            if (u.getId().equals(id)) {                // 判断用户ID是否与输入的ID匹配
                return i;
            }
        }
        return -1;
    }

    public static boolean contains(ArrayList<User> list, String id) {
        return getIndex(list, id) != -1;
    }
}

 

4. 返回多个数据

有两个方法,一个是视频里的,一个是我写的

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<Phone> list = new ArrayList<>();
        Phone p1 = new Phone("VIVO", 1000);  // 创建用户对象
        Phone p2 = new Phone("oppo", 8000);
        Phone p3 = new Phone("三星", 2999);
        list.add(p1);                                  // 将用户对象添加到集合中
        list.add(p2);
        list.add(p3);

        ArrayList<Phone> newList = getPhoneInfo(list);
        for(int i = 0; i<newList.size(); i++){
            System.out.println(newList.get(i).getBrand() + " " + newList.get(i).getPrice());
        }
        System.out.println("=========================");
        getPhoneInfo_myself(list);
    }
    public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list) {
        ArrayList<Phone> newList = new ArrayList<>();      // 创建一个新的集合用于存储符合条件的用户
        for (int i = 0; i < list.size(); i++) {
            Phone p = list.get(i);                      // 获取集合中的每个用户对象
            if (p.getPrice()<3000) {                // 判断用户ID是否与输入的ID匹配
                newList.add(p);                      // 如果匹配,则将该用户对象添加到新集合中
            }                                       // 如果不匹配,则继续循环
        }                                       // 循环结束后,返回新集合
        return newList;
    }

    public static void getPhoneInfo_myself(ArrayList<Phone> list) {
        for (int i = 0; i < list.size(); i++) {
            Phone p = list.get(i);                      // 获取集合中的每个用户对象
            if (p.getPrice()<3000) {                // 判断用户ID是否与输入的ID匹配
                System.out.println(p.getBrand() + " " + p.getPrice());
            }
        }
    }
}

 

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

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

相关文章

[论文阅读]Formalizing and Benchmarking Prompt Injection Attacks and Defenses

Formalizing and Benchmarking Prompt Injection Attacks and Defenses Formalizing and Benchmarking Prompt Injection Attacks and Defenses | USENIX 33rd USENIX Security Symposium (USENIX Security 24) 提出了一个框架来形式化提示注入攻击&#xff0c;对提示注入攻击…

JavaScript性能优化实战,从理论到落地的全面指南

在前端开发领域&#xff0c;JavaScript的性能优化是提升用户体验的核心环节。随着Web应用复杂度的提升&#xff0c;开发者面临的性能瓶颈也日益多样化。本文将从理论分析、代码实践和工具使用三个维度&#xff0c;系统性地讲解JavaScript性能优化的实战技巧&#xff0c;并通过大…

MySQL 8.0 OCP 英文题库解析(三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题16~25 试题16:…

Docker容器启动失败?无法启动?

Docker容器无法启动的疑难杂症解析与解决方案 一、问题现象 Docker容器无法启动是开发者在容器化部署中最常见的故障之一。尽管Docker提供了丰富的调试工具&#xff0c;但问题的根源往往隐藏在复杂的配置、环境依赖或资源限制中。本文将从环境变量配置错误这一细节问题入手&am…

MySQL 数据类型全面指南:从理论到实践

在数据库设计和开发中&#xff0c;数据类型的选择是构建高效、可靠系统的基石。MySQL作为最流行的关系型数据库之一&#xff0c;提供了丰富的数据类型以满足各种数据存储需求。本文将全面介绍MySQL的数据类型体系&#xff0c;通过理论讲解和实际示例&#xff0c;帮助开发者做出…

uniapp(微信小程序)>关于父子组件的样式传递问题(自定义组件样式穿透)

在父组件中给子组件添加类名,子组件的样式由父组件决定 由于"微信小程序"存在【样式隔离机制】&#xff0c;且默认设置为isolated(启用样式隔离)&#xff0c;因此这里给出以下两种解决方案&#xff1a; // 小程序编译机制 1. 当 <style scoped> 存在时&#…

【HCIA】BFD

前言 前面我们介绍了浮动路由以及出口路由器的默认路由配置&#xff0c;可如此配置会存在隐患&#xff0c;就是出口路由器直连的网络设备并不是运营商的路由器&#xff0c;而是交换机。此时我们就需要感知路由器的存活状态&#xff0c;这就需要用到 BFD&#xff08;Bidirectio…

计算机视觉最不卷的方向:三维重建学习路线梳理

提到计算机视觉&#xff08;CV&#xff09;&#xff0c;大多数人脑海中会立马浮现出一个字&#xff1a;“卷”。卷到什么程度呢&#xff1f;2022年秋招CV工程师岗位数下降了16%&#xff0c;但求职人数增加了23%&#xff0c;求职人数与招聘岗位的比例达到了恐怖的15:1&#xff0…

android抓包踩坑记录

​ 由于需要公司业务需求&#xff0c;需要抓取APP中摄像机插件的网络包&#xff0c;踩了两天坑&#xff0c;这里做个总结吧。 事先准备 android-studio emulatesdk 需要android模拟器和adb调试工具。如果已经有其他模拟器的话&#xff0c;可以只安装adb调试工具即可 mitmproxy…

Webpack其他插件

安装html打包插件 const path require(path); const HtmlWebpackPlugin require(html-webpack-plugin) module.exports {entry: path.resolve(__dirname,src/login/index.js),output: {path: path.resolve(__dirname, dist),filename: ./login/index.js,clean:true},Plugin:…

Python Matplotlib 库【绘图基础库】全面解析

让AI成为我们的得力助手&#xff1a;《用Cursor玩转AI辅助编程——不写代码也能做软件开发》 一、发展历程 Matplotlib 由 John D. Hunter 于 2003 年创建&#xff0c;灵感来源于 MATLAB 的绘图系统。作为 Python 生态中最早的可视化工具之一&#xff0c;它逐渐成为科学计算领…

C++ string数据查找、string数据替换、string子串获取

string查找示例见下&#xff0c;代码见下&#xff0c;以及对应运行结果见下&#xff1a; #include<iostream>using namespace std;int main() {// 1string s1 "hellooooworld";cout << s1.find("oooo") << endl;// 2cout << (in…

关于甲骨文(oracle cloud)丢失MFA的解决方案

前两年&#xff0c;申请了一个招商的多币种信用卡&#xff0c;然后就从网上撸了一个oracle的免费1h1g的服务器。 用了一段时间&#xff0c;人家要启用MFA验证。 啥叫MFA验证&#xff0c;类似与短信验证吧&#xff0c;就是绑定一个手机&#xff0c;然后下载一个app&#xff0c;每…

【网络编程】七、详解HTTP 搭建HTTP服务器

文章目录 Ⅰ. HTTP协议的由来 -- 万维网Ⅱ. 认识URL1、URL的格式协议方案名登录信息 -- 忽略服务器地址服务器端口号文件路径查询字符串片段标识符 2、URL的编码和解码 Ⅲ. HTTP的报文结构1、请求协议格式2、响应协议格式&#x1f38f; 写代码的时候&#xff0c;怎么保证请求和…

[Java实战]Spring Boot 快速配置 HTTPS 并实现 HTTP 自动跳转(八)

[Java实战]Spring Boot 快速配置 HTTPS 并实现 HTTP 自动跳转(八) 引言 在当今网络安全威胁日益严峻的背景下&#xff0c;为 Web 应用启用 HTTPS 已成为基本要求。Spring Boot 提供了简单高效的方式集成 HTTPS 支持&#xff0c;无论是开发环境测试还是生产环境部署&#xff0…

CVPR计算机视觉顶会论文解读:IPC-Dehaze 如何解决真实场景去雾难题

【CVPR 2025】迭代预测-评判编解码网络&#xff1a;突破真实场景去雾的极限 摘要 本文提出了一种名为IPC-Dehaze的创新去雾方法&#xff0c;通过迭代预测-评判框架和码本解码机制&#xff0c;有效解决了现有去雾算法在复杂场景下的性能瓶颈。该方法在多个基准测试中取得了SOT…

ppy/osu构建 ipad作为osu按键xz笔记2 deepwiki websokect

ipad当x和z键玩osu #无声打osu#没磁轴怎么打osu 下载 .NET (Linux、macOS 和 Windows) | .NET dotnet还行 构建&#xff1a;f5 运行&#xff1a;dotnet run --project osu.Desktop -c Debug deepwiki就是nb uinput是ubuntu的我现在没法调试&#xff0c;放着 import asyn…

.NET程序启动就报错,如何截获初期化时的问题json

一&#xff1a;背景 1. 讲故事 前几天训练营里的一位朋友在复习课件的时候&#xff0c;程序一跑就报错&#xff0c;截图如下&#xff1a; 从给出的错误信息看大概是因为json格式无效导致的&#xff0c;在早期的训练营里曾经也有一例这样的报错&#xff0c;最后定位下来是公司…

nacos:服务注册原理

目录 NaCos服务注册原理1、AbstractAutoServiceRegistration功能和作用onApplicationEvent()方法start()方法 2、NacosAutoServiceRegistration功能和作用NacosAutoServiceRegistration.register()方法AbstractAutoServiceRegistration.register()方法 3、NacosServiceRegistry…

基于开源AI大模型与S2B2C生态的个人品牌优势挖掘与标签重构研究

摘要&#xff1a;在数字文明时代&#xff0c;个人品牌塑造已从传统经验驱动转向数据智能驱动。本文以开源AI大模型、AI智能名片与S2B2C商城小程序源码为技术载体&#xff0c;提出"社会评价-数据验证-标签重构"的三维分析框架。通过实证研究发现&#xff0c;结合第三方…