Day30:ArrayList详解
ArrayList
1.1 集合概述
当我们要存储多个数据时,固定长度的数组存储格式已经满足不了我们的需要了,且不能满足变化的需求;
Java中集合类则可以解决我们的需求
特点:提供一种存储空间可变的存储模型
我们将对集合中的ArrayList进行学习;ArrayList在Java.util下,所以我们使用时需要导包
ArrayList:
- 是可调整大小数组的实现
- 是一种特殊的数据类型,泛型;
- 将E替换成我们想要的引用数据类型:ArrayList、ArrayList、、、
- 存储在ArrayList中的元素必须是一种对象
1.2 ArrayList的构造和添加
| 方法名 | 说明 |
|---|---|
| public ArrayList() | 该类的无参构造器 |
| public boolean add(E e) | 将参数添加到集合内容的末尾;注意返回值为布尔值 |
| public void add(int index,E e) | 将参数添加到集合指定下标位置处 |
我们从代码中对三个方法进行学习:
public class Test{
public static void main(String[] args){
//建立一个存储String对象的ArrayList
ArrayList<String> s=new ArrayList<>();
System.out.println(s);
}
}
//输出结果
[]
//当ArrayList刚创建时,内容为空
我们对ArrayList添加对象
public class Test{
public static void main(String[] args){
ArrayList<String> s=new ArrayList<>();
//添加元素调用add方法
s.add("工地佬");
s.add("是牛马");
System.out.println(s);
}
}
//输出结果
[工地佬,是牛马]
接下来演示指定下标添加元素
public class Test{
public static void main(String[] args){
ArrayList<String> s=new ArrayList<>();
s.add("工地佬");
s.add("是牛马");
//调用添加元素到指定位置的方法
s.add(1,"是什么?")
System.out.println(s);
}
}
//输出结果
[工地佬,是什么?,是牛马]
1.3 ArrayList集合常用方法
| 方法名 | 说明 |
|---|---|
| public boolean remove(Object o) | 删除指定元素,并返回是否删除成功 |
| public E remove (int index) | 删除指定下标的元素,并返回删除的元素 |
| public E set(int inde,E element) | 修改指定下标的元素,并返回修改的元素 |
| public E get(int index) | 获取指定下标的元素,并返回该元素 |
| public int size() | 返回集合的元素个数 |
//演示上面五种方法
import java.util.ArrayList;//首先要导入ArrayList包;ArrayList在Java.util下,所以我们使用时需要导包
public class Test{
public static void main(String[] args){
ArrayList<String> s=new ArrayList<>();
s.add("中交");
s.add("二航局");
s.add("建筑");
s.add("有限公司");
System.out.println(s);//[中交,二航局,建筑,有限公司]
System.out.println(s.remove("中交"));//true remove方法移除指定的的元素,并返回是否移除成功
System.out.println(s);//[二航局,建筑,有限公司] 移除后的集合列表元素
System.out.println(s.remove(0));//二航局 重载方法remove移除指定下标的元素,并返回被移除的元素
System.out.println(s);//[建筑,有限公司] 移除后的集合列表元素
System.out.println(s.set(0,"牛马"));//建筑 set方法修改指定下标的元素,并返回被修改的元素
System.out.println(s);//[牛马,有限公司] 修改后的集合列表元素
System.out.println(s.get(0));//牛马 get方法获取指定下标的元素,并返回获取的元素
System.out.println(s);//[牛马,有限公司]
System.out.println(s.size());//2 size方法获取集合中的元素个数,并返回数字
System.out.println(s);//[牛马,有限公司]
}
}
案例:存储学生对象并遍历
思路:
①先创建一个学生类
②测试类中创建存储学生对象的ArrayList集合
③创建学生对象并添加至集合中
④利用循环遍历对象属性
//创建一个学生类
public class Students{
//添加成员变量、属性
private String name;
private int age;
//无参构造
public Students(){
}
//有参构造
public Students(String name,int age){
this.name=name;
this.age=age;
}
//私有属性访问方法
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return name;
}
public int age(){
return age;
}
}
//
import java.util.ArrayList;//导包
public class Test{
public static void main(String[] args){
ArrayList<Students> s=ArrayList<>();//创建一个存储学生类对象的集合
Students st1=new Students("无极剑圣",500);//创建学生对象
Students st1=new Students("疾风剑豪",6300);
Students st1=new Students("鲁班七号",3500);.
s.add(st1);//学生对象加入到集合中
s.add(st2);
s.add(st3);
for(int i=0;i<s.size();i++){
System.out.println(s.get(i).getName()+" "+s.get(i)getAge());
}
}
//输出结果
无极剑圣 500
疾风剑豪 6300
鲁班七号 3500
Day30:ArrayList详解的更多相关文章
- 【集合框架】JDK1.8源码分析之ArrayList详解(一)
[集合框架]JDK1.8源码分析之ArrayList详解(一) 一. 从ArrayList字表面推测 ArrayList类的命名是由Array和List单词组合而成,Array的中文意思是数组,Lis ...
- ArrayList详解-源码分析
ArrayList详解-源码分析 1. 概述 在平时的开发中,用到最多的集合应该就是ArrayList了,本篇文章将结合源代码来学习ArrayList. ArrayList是基于数组实现的集合列表 支 ...
- java集合类之ArrayList详解
一.ArrayList源码分析 1.全局变量 (1)默认容量(主要是通过无参构造函数创建ArrayList时第一次add执行扩容操作时指定的elementData的数组容量为10) private s ...
- Java.util.ArrayList详解
java.util.ArrayList就是传说中的动态数组. 继承了关系,有此可看出ArrayList与list的collection的关系 public class ArrayList<E&g ...
- 【Java集合类】ArrayList详解 (JDK7)
相信对于使用过Java的人来说,ArrayList这个类大家一定不会陌生. 数据结构课上讲过, Array是数组,它能根据下标直接找到相应的地址,所以索引速度很快,但是唯一的缺点是不能动态改变数组的长 ...
- ArrayList详解
一.ArrayList类介绍:(这里给出jdk1.8源码上中文翻译) ArrayList是List接口以可变数组方式实现的,实现了所有的lis接口中的操作,并容许有null等所有元素.除了实现了Lis ...
- Java ArrayList 详解
只记录目前为止关注的.JDK1.8 一.基础属性 1.1 内部参数 //空存储实例.直接new ArrayList()便是以该空数组作为实例 private static final Object[] ...
- Java 8 ArrayList 详解
GitHub Page: http://blog.cloudli.top/posts/Java-ArrayList/ ArrayList 继承于 AbstractList ,实现了 List.Rand ...
- 2 ArrayList 详解
List 是有序.可重复的容器.List中每个元素都有索引标记,可以根据元素的索引标记访问元素,从而精确控制这些元素. List 接口常用的实现类:ArrayList.LinkedList.Vecto ...
- ArrayList详解,底层是数组,实现Serializable接口
一.对于ArrayList需要掌握的七点内容 ArrayList的创建:即构造器往ArrayList中添加对象:即add(E)方法获取ArrayList中的单个对象:即get(int index)方法 ...
随机推荐
- Java中的SPI原理浅谈
在面向对象的程序设计中,模块之间交互采用接口编程,通常情况下调用方不需要知道被调用方的内部实现细节,因为一旦涉及到了具体实现,如果需要换一种实现就需要修改代码,这违反了程序设计的"开闭原则& ...
- .NET 6 EFCore WebApi 使用 JMeter 进行吞吐量测试
.NET 6 EFCore WebApi 使用 JMeter 进行吞吐量测试 开发环境 VS2022 .NET 6 测试环境 测试工具 接口压力测试工具:JMeter 数据库 MySQL 5.7 数据 ...
- .NET 反向代理-YARP 根据域名转发
前段时间发布过一个关于 YARP 的简单介绍,感兴趣的小伙伴恭请移步看看 .NET 反向代理-YARP - 一事冇诚 - 博客园 (cnblogs.com) 作为反向代理,必不可少的当然是根据域名代理 ...
- Django 使用Pycharm 创建工程
一.Pycharm 创建Django 工程 事实上,我们一般不使用命令行,而是直接在Pycharm 中创建Django 项目. Pycharm 是进行Django 开发的最佳 IDE,请大家自行安装, ...
- C#-1 .Net框架
一 .Net框架组成分为三部分:公共语言运行时CLR.框架类库FCL和编程工具 1.CLR:公共语言运行时(Common Language Runtime): 是一个运行时环境负责代码安全验证.代码执 ...
- HDU3507 print article (斜率优化DP)
状态表示:dp[i]表示打印前i个单词的最小成本:s[i]维护前缀和. 状态转移:dp[i]=min(dp[j]+(s[i]-s[j])2)+m , 0<=j<i. 换成y=kx+b的形式 ...
- 【pytest官方文档】解读- 插件开发之hooks 函数(钩子)
上一节讲到如何安装和使用第三方插件,用法很简单.接下来解读下如何自己开发pytest插件. 但是,由于一个插件包含一个或多个钩子函数开发而来,所以在具体开发插件之前还需要先学习hooks函数. 一.什 ...
- springboot中使用mybatisplus自带插件实现分页
springboot中使用mybatisplus自带插件实现分页 1.导入mybatisplus分页依赖 <dependency> <groupId>com.baomidou& ...
- 我用canvas带你看一场流星雨
前言 最近总是梦见一些小时候的故事,印象最深刻的就是夏天坐在屋顶上,看着满天的繁星,一颗,两颗,三颗...不由自主地开始了数星星的过程.不经意间,一颗流星划过夜间,虽然只是转瞬即逝,但它似乎比夜空中的 ...
- .NET周报【10月第2期 2022-10-17】
主题 宣布 .NET 7 发布候选版本 2 - .NET Blog https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-2/ .N ...