java学习-集合

news2024/11/23 18:33:48

为什么有集合?

自动扩容

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

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

ArrayList

public class studentTest {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        boolean res=list.add("aaa");
        System.out.println(res); //true
        System.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); //true
        System.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);//cccc
        System.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.coloradmin.cn/o/2246176.html

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

相关文章

返回流类型接口的错误信息处理

返回流类型接口的错误信息处理 前言axios拦截器src/utils/request.ts对应接口 前言 返回流类型接口需要在响应成功回调里拦截&#xff0c;且该接口的status始终是200&#xff0c;尽管后端返回的code可能是非2xx&#xff0c;因此返回流类型的接口&#xff0c;其错误信息需要单独…

用宏实现简单的计算器

大家好&#xff0c;那么经过我们前面几期的学习&#xff0c;我们对宏有了一定的了解&#xff0c;那么我们今天就来试试实现一个简单的加减乘除运算。 我们的思路是使用三目操作符来分别进行加减和乘除的运算&#xff0c;然后用if判断来”进入相关的判断体进而来进行计算。当然…

WEB攻防-通用漏洞文件上传js验证mimeuser.ini语言特性

知识点&#xff1a; 1、文件上传-前端验证 2、文件上传-黑白名单 3、文件上传-user.ini妙用 4、文件上传-php语言特性 详细点&#xff1a; 1、检测层面&#xff1a;前端&#xff0c;后端等 2、检测内容&#xff1a;文件头&#xff0c;完整型&#xff0c;二次渲染等 3、检…

《Vue零基础教程》(3)创建第一个应用案例

1 应用实例 参考官方文档 https://cn.vuejs.org/api/application.html#create-app 示例 const {createApp} Vue// 通过createApp创建一个应用实例 const app createApp({/* 选项 */ }) console.log(app) 分析打印结果, 可知 应用实例是一个对象没有_开头的是公开属性/方…

复合瓦片切片集集合数量与性能关系验证

作者&#xff1a;lzzzz Sci瓦片聚合性能分析 需要聚合的图层越多&#xff0c;性能越低&#xff0c;目前测试以每个瓦片仅包含一个矢量面数据为例&#xff1a; sci数量 服务拉起耗时 前端加载&#xff08;单瓦片&#xff09; 100 10s 500ms 1000 5min 3s 10000 1hour …

大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

摄影:相机控色

摄影&#xff1a;相机控色 白平衡&#xff08;White Balance&#xff09;白平衡的作用&#xff1a; 白平衡的使用环境色温下相机色温下总结 白平衡偏移与包围白平衡包围 影调 白平衡&#xff08;White Balance&#xff09; 人眼看到的白色&#xff1a;会自动适应环境光线。 相…

性能监控利器:Ubuntu 22.04 上的 Zabbix 安装与配置指南

简介 今天我们来聊聊如何在 Ubuntu 22.04 上安装和配置 Zabbix。我们会用到 PostgreSQL 作为数据库后端&#xff0c;Nginx 作为 Web 服务器&#xff0c;并用 Let’s Encrypt SSL 证书来保驾护航。 什么是 Zabbix&#xff1f; Zabbix 是一个开源的网络监控和管理解决方案&…

队列基本实现

模板 int queue[10010]; int hh1,tt0; void push1(int x) {queue[tt]x; } void pop1() {if(hh>tt){cout<<"ERR_CANNOT_POP"<<endl;}else{hh;} } int query1() {if(hh>tt){cout<<"ERR_CANNOT_QUERY"<<endl;}return queue[hh…

【ArcGISPro】使用AI模型提取要素-提取车辆(目标识别)

示例数据下载 栅格数据从网上随便找一个带有车辆的栅格数据 f094a6b1e205cd4d30a2e0f816f0c6af.jpg (1200799) (588ku.com) 添加数据

GitLab|数据迁移

注意&#xff1a;新服务器GitLab版本需和旧版本一致 在旧服务器执行命令进行数据备份 gitlab-rake gitlab:backup:create 备份数据存储在 /var/opt/gitlab/backups/ 将备份数据传输到新服务器的/var/opt/gitlab/backups/下&#xff0c;并修改文件权限&#xff08;下载前和上传…

UE5 5.1.1创建C++项目,显示error C4668和error C4067的解决方法

因为工作要求&#xff0c;没法使用最新 5.5版本的ue5 而是要用ue5.1和5.2版本。 但是我在安装下载了visual studio2022后&#xff0c;使用 ue5.1编辑器 创建C项目&#xff0c;爆出如下错误。 error C4668: ?????__has_feature?????ΪԤ?????꣬???0????…

网络安全概论

一、 网络安全是一个综合性的技术。在Internet这样的环境中&#xff0c;其本身的目的就是为了提供一种开放式的交互环境&#xff0c;但是为了保护一些秘密信息&#xff0c;网络安全成为了在开放网络环境中必要的技术之一。网络安全技术是随着网络技术的进步逐步发展的。 网络安…

51单片机基础01 单片机最小系统

目录 一、什么是51单片机 二、51单片机的引脚介绍 1、VCC GND 2、XTAL1 2 3、RST 4、EA 5、PSEN 6、ALE 7、RXD、TXD 8、INT0、INT1 9、T0、T1 10、MOSI、MISO、SCK 11、WR、RD 12、通用IO P0 13、通用IO P1 14、通用IO P2 三、51单片机的最小系统 1、供电与…

DASCTF 2024 10月 Reverse 完成笔记 附题目

题目链接: https://github.com/Airrcat/long_long/tree/main/DASCTF_2024_10 ezre 查PE 32位无壳 开始分析 看起来很像加壳了 字符串未有暴露信息&#xff0c;但是段中有一个themida 发现是一个壳&#xff0c;直接去找脱壳机 一些脱壳工具&#xff08;Magicmida)是…

JavaScript 中 arguments、类数组与数组的深入解析

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;什么是 arguments 对象2.1 arguments 的定义2.2 arguments 的特性2.3 使用场景 &#x1f4af;深入了解 arguments 的结构3.1 arguments 的内部结构arguments 的关键属性 3.2 类数组…

Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化

Kafka&#xff1a;分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析&#xff1a;从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析&#xff1a…

数位之和c++

题目描述 小杨有 n个正整数&#xff0c;他认为一个正整数是美丽数字当且仅当该正整数每一位数字的总和是 7 的倍数。 小杨想请你编写一个程序判断 n 个正整数哪些是美丽数字。 输入 第一行包含一个正整数 n&#xff0c;代表正整数个数。 之后n 行&#xff0c;每行包含一个…

同三维T4000S系列高清SDI字符叠加器

同三维T4000S系列高清SDI字符叠加器 两个型号&#xff1a; 同三维T4000S-2U (2U机箱&#xff0c;可插1-16张叠加模块) 同三维T4000S1 &#xff08;单路&#xff09; 产品简介 “HD-SDI字符叠加器”可在HD-SDI视频图象信号上叠加日期、时间及中英文字符信息。广泛用于安防监…

重生之我在学环境变量

环境变量 基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#xff0c;但 是照样可以链接成功&#…