java学习——ArrayList和泛型(学习记录)

news2024/11/30 2:45:13

学习资料来自菜鸟教程
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 继承了 AbstractList ,并实现了 List 接口。
ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:

import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>();  // 初始化

E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。
objectName: 对象名。
ArrayList 是一个数组队列,提供了相关的添加、删除、修改、遍历等功能

Java ArrayList 常用方法

  1. add() 方法添加元素到 ArrayList
  2. get() 方法访问 ArrayList 中的元素
  3. set() 方法修改 ArrayList 中的元素
import java.util.ArrayList;//引入 ArrayList 类
public class ArrayListtest {
    public static void main(String[]args){
        ArrayList<String>list1 = new ArrayList<>();//初始化类
        list1.add("列表一");//.add往list1添加元素
        list1.add("列表二");
        list1.add("列表三");
        list1.add("列表四");
        list1.add("列表五");
        System.out.println(list1);
        System.out.println(list1.get(1));//get()方法访问 ArrayList 中的元素
        list1.set(4, "列表六");//set()方法修改ArrayList中的元素,第一个参数为索引位置,第二个为要修改的值
        System.out.println(list1);
    }
}

运行结果:
在这里插入图片描述

  1. 使用 remove() 方法删除 ArrayList 中的元素
import java.util.ArrayList;//引入 ArrayList 类
public class ArrayListtest {
    public static void main(String[]args){
        ArrayList<String>list1 = new ArrayList<>();//初始化类
        list1.add("列表一");//.add往list1添加元素
        list1.add("列表二");
        list1.add("列表三");
        list1.add("列表四");
        list1.add("列表五");
        list1.remove(4);//删除第5个元素
        System.out.println(list1);
    }
}

在这里插入图片描述

  1. 使用 size() 方法计算 ArrayList 中的元素数量
import java.util.ArrayList;//引入 ArrayList 类
public class ArrayListtest {
    public static void main(String[]args){
        ArrayList<String>list1 = new ArrayList<>();//初始化类
        list1.add("列表一");//.add往list1添加元素
        list1.add("列表二");
        list1.add("列表三");
        list1.add("列表四");
        list1.add("列表五");
        System.out.println(list1.size());//计算数组中元素的数量
    }
}

在这里插入图片描述
6. for / for-each 来迭代数组列表中的元素

import java.util.ArrayList;//引入 ArrayList 类
public class ArrayListtest {
    public static void main(String[]args) {
        ArrayList<String> list1 = new ArrayList<>();//初始化类
        list1.add("列表一");//.add往list1添加元素
        list1.add("列表二");
        list1.add("列表三");
        list1.add("列表四");
        list1.add("列表五");
        for (int i = 0; i < list1.size(); i++) {//使用for来迭代数组列表中的元素
            System.out.println(list1.get(i));//计算数组中元素的数量
        }
        System.out.println("==============分隔符==============");//计算数组中元素的数量
        for (String i:list1) {//使用for-each来迭代数组列表中的元素
            System.out.println(i);
        }
    }
}

在这里插入图片描述

ArrayList 排序

  1. Collections 类也是一个非常有用的类,位于 java.util 包中,提供的 sort() 方法可以对字符或数字列表进行排序。
import java.util.ArrayList;//引入 ArrayList 类
import java.util.Collections;// 引入 Collections 类
public class ArrayListtest {
    public static void main(String[]args) {
        ArrayList<String> list1 = new ArrayList<>();//初始化类
        list1.add("d");//.add往list1添加元素
        list1.add("b");
        list1.add("c");
        list1.add("e");
        list1.add("a");
        Collections.sort(list1);  // Collections类中提供的 sort() 方法可以对字符或数字列表进行排序
        for (String i : list1) {
            System.out.println(i);
        }
        }
    }

在这里插入图片描述
数字排序
在这里插入图片描述

Java ArrayList 常用方法列表

方法描述
add()将元素插入到指定位置的 arraylist 中
addAll()添加集合中的所有元素到 arraylist 中
clear()删除 arraylist 中的所有元素
clone()复制一份 arraylist
contains()判断元素是否在 arraylist
get()通过索引值获取 arraylist 中的元素
indexOf()返回 arraylist 中元素的索引值
removeAll()删除存在于指定集合中的 arraylist 里的所有元素
remove()删除 arraylist 里的单个元素
size()返回 arraylist 里元素数量
isEmpty()判断 arraylist 是否为空
subList()截取部分 arraylist 的元素
set()替换 arraylist 中指定索引的元素
sort()对 arraylist 元素进行排序
toArray()将 arraylist 转换为数组
toString()将 arraylist 转换为字符串
ensureCapacity()设置指定容量大小的 arraylist
lastIndexOf()返回指定元素在 arraylist 中最后一次出现的位置
lastIndexOf()返回指定元素在 arraylist 中最后一次出现的位置
retainAll()保留 arraylist 中在指定集合中也存在的那些元素
containsAll()查看 arraylist 是否包含指定集合中的所有元素
trimToSize()将 arraylist 中的容量调整为数组中的元素个数
removeRange()删除 arraylist 中指定索引之间存在的元素
replaceAll()将给定的操作内容替换掉数组中每一个元素
removeIf()删除所有满足特定条件的 arraylist 元素
forEach()遍历 arraylist 中每一个元素并执行特定操作

泛型

下面是定义泛型方法的规则:
所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的 )。
每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像 int、double、char 等)。
java 中泛型标记符:

  • E - Element (在集合中使用,因为集合中存放的是元素)
  • T - Type(Java 类)
  • K - Key(键)
  • V - Value(值)
  • N - Number(数值类型)
  • ? - 表示不确定的 java 类型

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

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

相关文章

事件驱动模型IO模型

什么是事件驱动模型&#xff1f; 事件驱动模型是一种计算机编程模型&#xff0c;它通过等待事件的触发&#xff0c;在事件被触发时执行对应的处理函数。这种模型下&#xff0c;程序不再按照严格的顺序执行命令&#xff0c;而是以事件为驱动进行执行。事件驱动模型更适合处理大…

[RSA议题分析] Finding Vulnerabilities through Static Analysis and Scripting

文章目录 简介议题分析发现漏洞 - 什么时候/为什么什么是漏洞挖掘漏洞价值 如何挖洞逆向工程环境从哪开始挑战 总结 简介 作者讲了挖漏洞的目标&#xff0c;和一些常用的挖漏洞的方法和如果你像现在开始挖掘二进制漏洞&#xff0c;那么你可以从memcpy开始。除此之外&#xff0…

【SpringBoot系列】Spring EL表达式的简介和快速入门

介绍 Sping EL&#xff08;Spring Expression Language 简称 SpEL&#xff09;是一种强大的表达式语言&#xff0c;支持在运行时查询和操作对象&#xff0c;它可以与 XML 或基于注解的 Spring 配置一起使用。语言语法类似于统一 EL&#xff0c;但提供了额外的功能,方法调用和字…

springboot+vue藏区特产销售平台(java项目源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的藏区特产销售平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

产品经理如何使用集简云实现工作流程自动化?

场景描述 作为一名产品经理&#xff0c;需要每天面对来自各个部门的需求&#xff0c;平时的工作内容更是复杂繁琐&#xff0c;画流程图、产品开发周期、产品描述、设计团队协作&#xff0c;新产品培训会、用户需求会&#xff0c;或跟进 bug 修复等等等等…… 对内不仅要参与业…

STM32与ESP32下载器设计

文章目录 背景STM32下载器使用现成的DAPlink选择自制DAPlink ESP32/ESP8266下载器连接接口STM32接口ESP32接口 背景 我们常用的单片机主要有STM32和ESP32&#xff0c;其中STM32下载要求SWD下载接口&#xff0c;ESP32下载要求串口&#xff0c;但需要控制ESP32 IO0和EN口高低电平…

前端人必须掌握的抓包技能(原理到实践)

目录 1. 前言 2. 抓包的原理 2.1 什么是抓包&#xff1f; 2.2 HTTP/HTTPS 抓包原理 2.2.1 HTTP 抓包原理 2.2.2 HTTPS 抓包原理 2.3 电脑如何抓手机的包 3. 抓包工具 whistle 3.1 whistle 是什么 如何快速使用 whistle 3.2 whistle 可以做的事情 4. whistle 实战案…

HP打印机网络连接扫描仪失败

财务反映,使用主机上的HP LaserJet Pro M329-HP Scan连接扫描仪提示失败。 测试果然失败,提示如下图: 点击修复后,提示 需要安装HP Print and Scan Doctor。 同意安装,并启动HP Print and Scan Doctor 点击开始,其开始搜索,过程有点慢。 第一次发现其连接错误,居然…

液晶显示常用概念

文章目录 数字液晶显示消隐区水平&#xff08;行&#xff09;消隐 HBlank垂直&#xff08;场&#xff09;消隐 VBlank RGB格式RGB555RGB565RGB888 VGA驱动原理时钟信号像素时钟同步信号DE信号&#xff08;有效数据选通信号&#xff09;DE信号与其他信号的关系 数字液晶显示消隐…

golang webhook源码和案例配合gitee实践

下载golang webhook源码和案例&#xff1a; https://download.csdn.net/download/qq_32421489/87824180 解压后go mod tidy下载依赖包 修改打包环境为Linux&#xff1a; go env -w GOOSlinux 打包命令&#xff1a;go build 打包后的可运行程序上传服务器后&#xff1a;参…

用本地连接集群进行压力测试,让你的测试更快更有效!

目录 引言 背景 详细步骤 1、首先打开终端 2、安装kubectl 3、配置kubeconfig 4.准备本地仓库文件 5.启动集群执行脚本 总结 引言 测试是软件开发中至关重要的一环&#xff0c;但长时间的等待和低效率的测试却常常让人感到烦躁。现在&#xff0c;我们推出了全新的解决…

真的裂开了呀,现在的00后,真是卷死了

谁说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。这不&#xff0c;上个月我们公司来了个00后&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪22K&#xff0c;都快接近我了。 后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 …

7个简单步骤创建企业邮箱教程

创建企业邮箱电子邮件地址有几种不同的方法&#xff0c;可以使用电子邮件服务提供商&#xff0c;也可以使用电子邮件托管服务。由于Zoho Mail是世界上最受欢迎的电子邮件服务提供商之一&#xff0c;提供非常简单的帐户设置、大量功能和有竞争力的价格&#xff0c;我们将以它为例…

【敲敲云】免费的零代码产品 — 应用创建与设置

敲敲云可以创建不同的应用&#xff0c;每一个应用我们可以看做一个系统&#xff0c;例如销售系统、财务系统等等。下面我们来看看如何创建应用吧。 应用的基础操作&#xff1a; 应用的基础操作包含创建应用、修改应用、退出/删除应用、排序应用、维护应用、应用回收站 1、新建…

提前进入行业顶尖阵营:高性能计算实习的竞争优势

如今就业越来越内卷&#xff0c;尤其是计算机行业更是如此。加上GPT以及大模型的加持&#xff0c;各大企业纷纷降本增效&#xff0c;普通程序员逐渐失去竞争力。想要在竞争激烈的就业市场中脱颖而出&#xff0c;提前进入行业顶尖阵营是一个明智的选择。而高性能计算实习将为您提…

js中获取对象属性值(对象.属性和对象[属性]的区别)

一、在JavaScript中可以通过两种方式访问对象属性 (1)可以使用“ . ”来访问对象的属性。 (2)可以使用“ [ ] ”来访问对象的属性。 二、对象.属性和对象[属性]的区别&#xff1a; 1.相同点&#xff1a; &#xff08;1&#xff09;都可以获取对象的属性值&#xff1b; 2.不同…

C Primer Plus第七章编程练习答案

学完C语言之后&#xff0c;我就去阅读《C Primer Plus》这本经典的C语言书籍&#xff0c;对每一章的编程练习题都做了相关的解答&#xff0c;仅仅代表着我个人的解答思路&#xff0c;如有错误&#xff0c;请各位大佬帮忙点出&#xff01; 1.编写一个程序读取输入&#xff0c;读…

PID算法在流量控制中的应用

目录 增量式或位置式 目录 增量式或位置式 PID控制周期 T1 时间 T2 约4ms PID C代码 最近有小伙伴向我提问关于PID的问题&#xff1a;通过比例阀控制水流速度&#xff08;流量&#xff09;&#xff0c; 使用增量式还是位置式 PID&#xff1f;他的比例法驱动频率是500Hz…

Windows http https的搭建

目录 搭建http站点 ​编辑 报错 网站端口更改 可能存在的报错 绑定主机名 端口为80的情况下 绑定的端口不为80的情况下 https站点搭建 CA机构证书可以给其他服务器使用&#xff0c;不过要用导出导入的行书&#xff0c;不能直接使用cer文件 搭建http站点 ①勾选IIS ②一…

windows下nginx+tomcat配置负载均衡的方法

在负载均衡方面&#xff0c;Nginx和Tomcat的实现方式略有不同。Nginx作为反向代理服务器&#xff0c;可以直接处理并分发请求到后端服务器&#xff0c;包括Tomcat。它可以使用不同的负载均衡算法来分发请求&#xff0c;将负载均衡的任务集中在Nginx上。而Tomcat通常通过与Apach…