集合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());
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DOM-获取元素

获取元素的方法&#xff1a; 方法一&#xff1a;根据id获取元素document.getElementById <div id"time">2024-6-4</div> 在script标签中&#xff1a;注意getElementById括号里面必须要有引号&#xff0c;获得的是对象类型 var timer document.getEle…

harmony相关开发参考文档

以下列举一些Harmony Os应用开发文档以及相关参考开源案例&#xff0c;可协助高效率开发&#xff1a; 1.鸿蒙NEXT开发官方资料&#xff1a;包含鸿蒙NEXT开发所有的特性&#xff0c;HarmonyOS SDK等&#xff0c;可以按需查阅&#xff0c;需要开通白名单&#xff1a;应用开发导读…

2024版CorelDRAW中文破解授权码激活码!立即下载CorelDRAW中文版终身永久破解下载攻略

在设计领域&#xff0c;CorelDRAW一直以其强大的图形编辑和矢量绘图功能而受到专业用户的青睐。随着CorelDRAW 2024的发布&#xff0c;设计师们迎来了更加丰富的工具和更新的功能&#xff0c;使得创意实现更为轻松和精准。对于追求成本效益的用户而言&#xff0c;CorelDRAW 202…

【SpringBoot + Vue 尚庭公寓实战】房间支付方式管理接口实现(三)

【SpringBoot Vue 尚庭公寓实战】房间支付方式管理接口实现&#xff08;三&#xff09; 文章目录 【SpringBoot Vue 尚庭公寓实战】房间支付方式管理接口实现&#xff08;三&#xff09;1、查询全部支付方式列表2、保存或更新支付方式3、根据ID删除支付方式 房间支付方式管理…

express入门03增删改查

目录 1 搭建服务器2 静态文件托管3 引入bootstrap4 引入jquery5 编写后端接口5.1 添加列表查询方法5.2 添加路由5.3 添加数据表格 总结 我们前两篇介绍了如何利用express搭建服务器&#xff0c;如何实现静态资源托管。那利用这两篇的知识点&#xff0c;我们就可以实现一个小功能…

如何手动实现multiSetIfAbsent、multiExpire

👽System.out.println(“👋🏼嗨,大家好,我是代码不会敲的小符,目前工作于上海某电商服务公司…”); 📚System.out.println(“🎈如果文章中有错误的地方,恳请大家指正!共同进步,共同成长✊”); 🌟System.out.println(“💡如果文章对您有所帮助,希望您可以三…

Multimodal Dynamics:用于多模态融合背景下的分类

Multimodal Dynamics&#xff08;MD&#xff09;是可信赖的多模态分类算法&#xff0c;该算法动态评估不同样本的特征级和模态级信息量&#xff0c;从而可信赖地对多模态进行融合。 来自&#xff1a;Multimodal Dynamics: Dynamical Fusion for Trustworthy Multimodal Classi…

2、python 基础学习总结

文章目录 一、python 标识符和变量命名规则1、python 标识符2 python 变量和变量命名规则 二、数据类型2.1 Numbers&#xff08;数字类型&#xff09;2.2 String&#xff08;字符串类型&#xff09;2.2.1 单引号、双引号、三引号字符串之间的区别2.2.2 转义字符 在这里插入图片…

PDU模块中浪涌保护模块与空开模块的应用

由于PDU具体应用的特殊性&#xff0c;其在规划设计时具有应用场景的针对性&#xff0c;同时PDU的高度定制化的特点&#xff0c;是其他电气联接与保护产品所不具备的。 PDU基础的输出输入功能外&#xff0c;其电路的控制与电压保护器同时也极为重要。空气开关和浪涌保护器相关功…

自动驾驶场景下TCP协议参数优化调整案例分享

RTT 往返时间&#xff0c;从tcp协议栈决定发包&#xff0c;到收到回包的时间。 包含本地驱动&#xff0c;网卡硬件&#xff0c;网线&#xff0c;交换机&#xff0c;收包方处理的耗时。需注意如果开了delayed ack&#xff0c;协议栈未做特殊处理&#xff08;默认没做&#xff…

GEO ISP图像调试-PFC(蓝紫边校正)

目录 1、简单介绍 2、调试策略 3、输出结果 1、简单介绍 GEO中中调整图像蓝紫边可分为两步&#xff0c;第一步&#xff1a;调整蓝紫边检测区域&#xff0c;第二步&#xff1a;设置去蓝紫边强度。 2、调试策略 图1 该图像蓝紫边较严重 主要原因是由于蓝紫边检测不准导致的&…

汽车行驶中是怎么保障轴瓦安全的?

汽车轴瓦是一种用于减少摩擦和支撑转动部件的关键零部件&#xff0c;通常用于发动机的曲轴、凸轮轴等转动部件上。主要作用是减少转动部件之间的摩擦&#xff0c;支撑和保护曲轴、凸轮轴等旋转部件&#xff0c;确保它们在高速旋转时的稳定性和耐用性。 在汽车轴瓦加工过程中&am…

Jemeter做性能测试

目录 1. 测试计划 2. 线程组 3. HTTP请求 4. 查看结果树 5. 聚合报告 【要求】 用JMeter取样器&#xff0c;实现对云边AI (qinzhi.xyz)的访问 【步骤】 1. 测试计划 2. 线程组 右击测试计划——添加——线程(用户)——线程组 3. HTTP请求 右击线程组——添加——取样…

基于C#开发web网页管理系统模板流程-参数传递

点击返回目录-> 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 当用户长时间未在管理系统界面进行操作&#xff0c;或者用户密码进行了更改&#xff0c;显然用户必须重新登录以验证身份&#xff0c;如何实现这个功能呢&#xff1f; HTTP Cookie&#xff08;也叫 …

meilisearch,老版本的文档

Elasticsearch 做为老牌搜索引擎&#xff0c;功能基本满足&#xff0c;但复杂&#xff0c;重量级&#xff0c;适合大数据量。 MeiliSearch 设计目标针对数据在 500GB 左右的搜索需求&#xff0c;极快&#xff0c;单文件&#xff0c;超轻量。 所以&#xff0c;对于中小型项目来说…

物业抄表与收费系统的现代化解决方案

1.系统简述 物业抄表与收费系统是当代物业管理方法不可或缺的一部分&#xff0c;它通过自动化的形式&#xff0c;高效地管理方法电力能源使用数据&#xff0c;提升收费标准高效率&#xff0c;降低人为失误&#xff0c;同时提供数据统计分析适用。该系统不但优化了物业企业的日…

单目标应用:基于人工原生动物优化器APO的微电网优化(MATLAB代码)

一、微电网模型介绍 微电网多目标优化调度模型简介_vmgpqv-CSDN博客 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、人工原生动物优化算法求解微电网 2.1算法简介 人工原生动物优化器&am…

CorelDRAW2024官方最新中文破解版Crack安装包网盘下载安装方法

在设计的世界里&#xff0c;软件工具的更新与升级总是令人瞩目的焦点。近期&#xff0c;CorelDRAW 2024中文版及其终身永久版的发布&#xff0c;以及中文破解版Crack的出现&#xff0c;再次掀起了设计圈的热潮。对于追求专业精确的设计师而言&#xff0c;了解这些版本的下载安装…

一文读懂IP地址隔离

一、IP地址隔离的概念和原理 当我们谈论 IP 地址隔离时&#xff0c;我们实际上是在讨论一种网络安全策略&#xff0c;旨在通过技术手段将网络划分为不同的区域或子网&#xff0c;每个区域或子网都有自己独特的 IP 地址范围。这种划分使网络管理员可以更精细地控制哪些设备或用…

[12] 使用 CUDA 进行图像处理

使用 CUDA 进行图像处理 当下生活在高清摄像头的时代&#xff0c;这种摄像头能捕获高达1920*1920像素的高解析度画幅。想要实施的处理这么多的数据&#xff0c;往往需要几个TFlops地浮点处理性能&#xff0c;这些要求CPU也无法满足通过在代码中使用CUDA&#xff0c;可以利用GP…