集合框架05:List接口使用、List实现类、ArrayList使用

news2024/12/22 7:53:23

视频链接:13.11 ArrayList使用_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1zD4y1Q7Fw?p=11&vd_source=b5775c3a4ea16a5306db9c7c1c1486b5

1.List接口使用代码举例

package com.yundait.Demo01;

import java.util.ArrayList;
import java.util.List;

public class ListDemo02 {
    public static void main(String[] args){
        //创建集合
        List list = new ArrayList<>();

        //1.添加数字数据(自动装箱)
        list.add(20);
        list.add(30);
        list.add(40);
        list.add(50);
        list.add(60);
        System.out.println("元素个数" + list.size());
        System.out.println(list.toString());

        //2.删除操作
        //list.remove(0);通过下标方式删除
        list.remove(new Integer(20));
        System.out.println("元素个数" + list.size());
        System.out.println(list.toString());

        //3.subList方法;返回子集合,含头不含尾(左闭右开)
        List subList = list.subList(1, 3);
        System.out.println(subList.toString());
    }

}

输出结果:

2.List实现类介绍

3.ArrayList使用代码示例

重写Student类的equals方法:

package com.yundait.Demo01;

/**
 *
 *学生类
 * @author zhang
 */
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;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object obj) {
        //1.判断是不是同一个对象
        if (this==obj){
            return true;
        }

        //2.判断是否为空
        if (obj==null){
            return false;
        }

        //3.判断是否为Student类型
        if (obj instanceof Student){

            Student s = (Student)obj;
            //4.比较属性
            if (this.name.equals(s.getName())&&this.age == s.getAge()){
                return true;
            }
        }
        
        //5.不满足条件返回false
        return false;
    }
}
package com.yundait.Demo01;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

public class ArrayListDemo01 {
    public static void main(String[] args) {
        //创建集合
        ArrayList arrayList = new ArrayList<>();

        //1.添加元素
        Student s1 = new Student("刘德华",20);
        Student s2 = new Student("郭富城",22);
        Student s3 = new Student("梁朝伟",24);
        Student s4 = new Student("甄子丹",18);
        arrayList.add(s1);
        arrayList.add(s2);
        arrayList.add(s3);
        arrayList.add(s4);
        System.out.println("元素个数" + arrayList.size());
        System.out.println(arrayList.toString());

        //2.删除元素
        //arrayList.remove(s1);
        arrayList.remove(new Student("刘德华",20)); //要想以这种方式删除需要重写equals方法
        System.out.println("删除之后元素个数" + arrayList.size());
        System.out.println(arrayList.toString());

        //3.遍历
        //3.1 使用Iterator进行遍历
        System.out.println("--------3.1 使用Iterator进行遍历---------");
        Iterator it = arrayList.iterator();
        while (it.hasNext()){
            Student s = (Student)it.next();
            System.out.println(s.toString());
        }

        //3.2使用ListIterator进行正序遍历
        System.out.println("----------3.2使用ListIterator进行正序遍历-----------");
        ListIterator lit= arrayList.listIterator();
        while(lit.hasNext()){
            Student s = (Student) lit.next();
            System.out.println(s.toString());
        }

        //3.3使用ListIterator进行逆序遍历
        System.out.println("----------3.2使用ListIterator进行逆序遍历-----------");
        while (lit.hasPrevious()){
            Student s = (Student) lit.previous();
            System.out.println(s.toString());
        }

        //4.判断
        //要实现一下方式删除的前提也是需要重写equals方法
        System.out.println(arrayList.contains(new Student("梁朝伟",24)));
        System.out.println(arrayList.isEmpty());

        //查找元素位置
        System.out.println(arrayList.indexOf(new Student("梁朝伟",24)));

    }
}

输出结果:

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

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

相关文章

DAMA数据管理知识体系(第8章 数据集成和互操作)

课本内容 8.1 引言 概要 数据集成和互操作&#xff08;DII&#xff09;描述了数据在不同数据存储、应用程序 和组织这三者内部和之间进行移动和整合的相关过程数据集成和互操作是新兴大数据管理领域的核心业务驱动因素 数据集成和互操作的主要目的是为了对数据移动进行有效的管…

open3D release版配置及简单使用

open3D release版配置及简单使用 0 引言1 open3d库文件获取及配置到VS1.1 open3d库文件获取1.2 open3d库配置到VS 2 测试open3d库3 结语 0 引言 &#x1f4bb;&#x1f4bb;AI一下&#x1f4bb;&#x1f4bb; Open3D是一个用于处理3D数据的开源库。它提供了一系列算法和工具&a…

职场中的人情世故,你懂了多少?

职场如战场&#xff0c;稍有不慎&#xff0c;满盘皆输。 职场如江湖&#xff0c;不是打打杀杀&#xff0c;而是人情世故。 成年人的世界里没有“容易”二字&#xff0c;我们也需要懂得哪些人情世故和。 职场上的各种光怪陆离现象&#xff0c;有很多职场人吐槽&#xff1a;“…

云岚到家,使用Elasticsearch实现服务的搜索功能,使用Canal+MQ完成服务信息与ES索引同步。MQ

为什么使用elasticsearch?数据很多么&#xff1f; 项目使用Elasticsearch是实现了门户上对服务的搜索。 平台上的服务数据是并不是很多&#xff0c;全国所有区域下的服务信息加一起几千条&#xff0c;之所以使用Elasticsearch是因为&#xff1a; 1、公司架构师在系统架构时…

九、5 USART串口数据包

数据包作用&#xff1a;把一个个单独的数据给打包起来&#xff0c;将同一批的数据进行打包和分割&#xff0c;方便接收方进行识别&#xff0c;方便我们进行多字节的数据通信。 1、串口收发HEX数据包 &#xff08;1&#xff09;数据包的格式是个人规定的&#xff0c;如以FF为包…

dotnet7==windows ZIP方式安装和web demo和打包

下载ZIP Download .NET 7.0 (Linux, macOS, and Windows) 解压 创建项目 mkdir MyWebApp cd MyWebApp "C:\Users\90816\Downloads\dotnet-sdk-7.0.317-win-x64\dotnet.exe" new webapp -n MyWebApp 运行项目 "C:\Users\90816\Downloads\dotnet-sdk-7.0.317-…

MySQL9的3个新特性

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) 本文讲解MySQL9的3个新特性&…

出国读研,是否有必要选择与自己本科专业相关的研究方向?

出国读研时&#xff0c;选择什么专业&#xff0c;是否选择与自己本科专业相关的方向&#xff0c;是很多同学会考虑的问题。事实上这个问题没有标准答案&#xff0c;取决于个人的职业目标、兴趣及市场需求等多方面因素。今天我们就这一问题展开讨论&#xff0c;希望能给即将出国…

【渗透测试】-OAuth授权框架-burp

文章目录 1.Lab: Authentication bypass via OAuth implicit flow  2.Lab: Forced OAuth profile linking 1.Lab: Authentication bypass via OAuth implicit flow 通过 Burp 代理流量时&#xff0c;单击“我的帐户”并完成 OAuth 登录过程。之后&#xff0c;您将被重定向回博…

信息安全工程师(39)防火墙防御体系结构类型

前言 防火墙防御体系结构类型多样化&#xff0c;每种类型都针对不同的安全需求和应用场景&#xff0c;提供不同层次的保护。 一、传统防火墙系统 包过滤防火墙 原理&#xff1a;通过检查进出网络数据包的头信息&#xff08;如源IP地址、目的IP地址、源端口、目的端口和协议等&a…

数据结构-4.4.朴素模式匹配算法

一.专业术语&#xff1a; 注&#xff1a;子串和模式串有区别。 二.朴素模式匹配算法&#xff1a; 思路&#xff1a;在主串中找出所有与模式串长度相等的子串&#xff0c;与模式串进行比较&#xff0c;如果找到了&#xff0c;返回子串第一个字符在主串的位置 1.使用字符串的基本…

大龄焦虑?35岁码农逆袭之路:拥抱大模型时代,焕发职业生涯新活力!

前言 其实我很早就对大龄程序员这个话题感到焦虑&#xff0c;担心自己35岁之后会面临失业&#xff0c;有时和亲戚朋友聊天时&#xff0c;也会经常拿这个出来调侃。现在身边已经有很多35岁左右的同事&#xff0c;自己过两年也会步入35岁的行列&#xff0c;反倒多了一份淡定和从…

【C++ 11】for 基于范围的循环

文章目录 【 1. 基本用法 】【 2. for 新格式的应用 】2.1 for 遍历字符串2.2 for 遍历列表2.3 for 遍历的同时修改元素 问题背景 C 11标准之前&#xff08;C 98/03 标准&#xff09;&#xff0c;如果要用 for 循环语句遍历一个数组或者容器&#xff0c;只能套用如下结构&#…

AtCoder Beginner Contest 373

D - Hidden Weights 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; #include <bits/stdc.h> #define fi first; #define se second;using namespace std;typedef long long LL; typedef pair<int,int> PII;const int N2e510; const LL lnf0x3f3f3f3f3f3f3…

【JavaEE】【多线程】Thread类讲解

目录 Thread构造方法Thread 的常见属性创建一个线程获取当前线程引用终止一个线程使用标志位使用自带的标志位 等待一个线程线程休眠线程状态线程安全线程不安全原因总结解决由先前线程不安全问题例子 Thread构造方法 方法说明Thread()创建线程对象Thread(Runnable target)使用…

WPS Office从路径穿越到远程代码执行漏洞(CVE-2024-7262)分析与复现

漏洞概述 WPS Office程序promecefpluginhost.exe存在不当路径验证问题&#xff0c;允许攻击者在Windows上加载任意Windows库文件。该漏洞已被APT-C-60攻击者利用&#xff0c;当用户打开MHTML格式的文档时&#xff0c;只需单击一个恶意制作的超链接&#xff0c;即可执行攻击者指…

【C++】map详解

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

如何实现小红点

文章目录 1. 概念介绍2. 实现方法3 示例代码我们在上一章回中介绍了WebView组件相关的内容,本章回中将介绍如何在图标旁边添加小红点.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 在实际项目中有时候需要在图标旁边显示小红点,而且小红点内还有数字,比如购物车图标显…

Android阶段学习思维导图

前言 记录下自己做的一个对Android原生应用层的思维导图&#xff0c;方便个人记忆扩展&#xff1b;这里只露出二级标题。 后语 虽然有些内容只是初步了解&#xff0c;但还是记录了下来&#xff1b;算是对过去一段学习的告别。

全体起立!CEEMDAN-Kmeans-VMD-CNN-Attention双重分解+卷积神经网络注意力机制多元时间序列预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CEEMDAN-Kmeans-VMD-CNN-Attentionr融合K均值聚类的数据双重分解卷积神经网络注意力机制多元时间序列预测&#xff08;完整源码和数据&#xff09; 2.CEEMDAN分解&#xff0c;计算样本熵&#xff0c;根据…