ArrayList

1.1 集合概述

当我们要存储多个数据时,固定长度的数组存储格式已经满足不了我们的需要了,且不能满足变化的需求;

Java中集合类则可以解决我们的需求

特点:提供一种存储空间可变的存储模型

我们将对集合中的ArrayList进行学习;ArrayListJava.util下,所以我们使用时需要导包

ArrayList:

  • 是可调整大小数组的实现
  • 是一种特殊的数据类型,泛型;
  • 将E替换成我们想要的引用数据类型:ArrayList、ArrayList、、、
  • 存储在ArrayList中的元素必须是一种对象

1.2 ArrayList的构造和添加

方法名 说明
public ArrayList() 该类的无参构造器
public boolean add(E e) 将参数添加到集合内容的末尾;注意返回值为布尔值
public void add(int index,E e) 将参数添加到集合指定下标位置处

我们从代码中对三个方法进行学习:

  1. public class Test{
  2. public static void main(String[] args){
  3. //建立一个存储String对象的ArrayList
  4. ArrayList<String> s=new ArrayList<>();
  5. System.out.println(s);
  6. }
  7. }
  1. //输出结果
  2. []
  3. //当ArrayList刚创建时,内容为空

我们对ArrayList添加对象

  1. public class Test{
  2. public static void main(String[] args){
  3. ArrayList<String> s=new ArrayList<>();
  4. //添加元素调用add方法
  5. s.add("工地佬");
  6. s.add("是牛马");
  7. System.out.println(s);
  8. }
  9. }
  1. //输出结果
  2. [工地佬,是牛马]

接下来演示指定下标添加元素

  1. public class Test{
  2. public static void main(String[] args){
  3. ArrayList<String> s=new ArrayList<>();
  4. s.add("工地佬");
  5. s.add("是牛马");
  6. //调用添加元素到指定位置的方法
  7. s.add(1,"是什么?")
  8. System.out.println(s);
  9. }
  10. }
  1. //输出结果
  2. [工地佬,是什么?,是牛马]

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() 返回集合的元素个数
  1. //演示上面五种方法
  2. import java.util.ArrayList;//首先要导入ArrayList包;ArrayList在Java.util下,所以我们使用时需要导包
  3. public class Test{
  4. public static void main(String[] args){
  5. ArrayList<String> s=new ArrayList<>();
  6. s.add("中交");
  7. s.add("二航局");
  8. s.add("建筑");
  9. s.add("有限公司");
  10. System.out.println(s);//[中交,二航局,建筑,有限公司]
  11. System.out.println(s.remove("中交"));//true remove方法移除指定的的元素,并返回是否移除成功
  12. System.out.println(s);//[二航局,建筑,有限公司] 移除后的集合列表元素
  13. System.out.println(s.remove(0));//二航局 重载方法remove移除指定下标的元素,并返回被移除的元素
  14. System.out.println(s);//[建筑,有限公司] 移除后的集合列表元素
  15. System.out.println(s.set(0,"牛马"));//建筑 set方法修改指定下标的元素,并返回被修改的元素
  16. System.out.println(s);//[牛马,有限公司] 修改后的集合列表元素
  17. System.out.println(s.get(0));//牛马 get方法获取指定下标的元素,并返回获取的元素
  18. System.out.println(s);//[牛马,有限公司]
  19. System.out.println(s.size());//2 size方法获取集合中的元素个数,并返回数字
  20. System.out.println(s);//[牛马,有限公司]
  21. }
  22. }

案例:存储学生对象并遍历

思路:

①先创建一个学生类

②测试类中创建存储学生对象的ArrayList集合

③创建学生对象并添加至集合中

④利用循环遍历对象属性

  1. //创建一个学生类
  2. public class Students{
  3. //添加成员变量、属性
  4. private String name;
  5. private int age;
  6. //无参构造
  7. public Students(){
  8. }
  9. //有参构造
  10. public Students(String name,int age){
  11. this.name=name;
  12. this.age=age;
  13. }
  14. //私有属性访问方法
  15. public void setName(String name){
  16. this.name=name;
  17. }
  18. public void setAge(int age){
  19. this.age=age;
  20. }
  21. public String getName(){
  22. return name;
  23. }
  24. public int age(){
  25. return age;
  26. }
  27. }
  1. //
  2. import java.util.ArrayList;//导包
  3. public class Test{
  4. public static void main(String[] args){
  5. ArrayList<Students> s=ArrayList<>();//创建一个存储学生类对象的集合
  6. Students st1=new Students("无极剑圣",500);//创建学生对象
  7. Students st1=new Students("疾风剑豪",6300);
  8. Students st1=new Students("鲁班七号",3500);.
  9. s.add(st1);//学生对象加入到集合中
  10. s.add(st2);
  11. s.add(st3);
  12. for(int i=0;i<s.size();i++){
  13. System.out.println(s.get(i).getName()+" "+s.get(i)getAge());
  14. }
  15. }
  1. //输出结果
  2. 无极剑圣 500
  3. 疾风剑豪 6300
  4. 鲁班七号 3500

Day30:ArrayList详解的更多相关文章

  1. 【集合框架】JDK1.8源码分析之ArrayList详解(一)

    [集合框架]JDK1.8源码分析之ArrayList详解(一) 一. 从ArrayList字表面推测 ArrayList类的命名是由Array和List单词组合而成,Array的中文意思是数组,Lis ...

  2. ArrayList详解-源码分析

    ArrayList详解-源码分析 1. 概述 在平时的开发中,用到最多的集合应该就是ArrayList了,本篇文章将结合源代码来学习ArrayList. ArrayList是基于数组实现的集合列表 支 ...

  3. java集合类之ArrayList详解

    一.ArrayList源码分析 1.全局变量 (1)默认容量(主要是通过无参构造函数创建ArrayList时第一次add执行扩容操作时指定的elementData的数组容量为10) private s ...

  4. Java.util.ArrayList详解

    java.util.ArrayList就是传说中的动态数组. 继承了关系,有此可看出ArrayList与list的collection的关系 public class ArrayList<E&g ...

  5. 【Java集合类】ArrayList详解 (JDK7)

    相信对于使用过Java的人来说,ArrayList这个类大家一定不会陌生. 数据结构课上讲过, Array是数组,它能根据下标直接找到相应的地址,所以索引速度很快,但是唯一的缺点是不能动态改变数组的长 ...

  6. ArrayList详解

    一.ArrayList类介绍:(这里给出jdk1.8源码上中文翻译) ArrayList是List接口以可变数组方式实现的,实现了所有的lis接口中的操作,并容许有null等所有元素.除了实现了Lis ...

  7. Java ArrayList 详解

    只记录目前为止关注的.JDK1.8 一.基础属性 1.1 内部参数 //空存储实例.直接new ArrayList()便是以该空数组作为实例 private static final Object[] ...

  8. Java 8 ArrayList 详解

    GitHub Page: http://blog.cloudli.top/posts/Java-ArrayList/ ArrayList 继承于 AbstractList ,实现了 List.Rand ...

  9. 2 ArrayList 详解

    List 是有序.可重复的容器.List中每个元素都有索引标记,可以根据元素的索引标记访问元素,从而精确控制这些元素. List 接口常用的实现类:ArrayList.LinkedList.Vecto ...

  10. ArrayList详解,底层是数组,实现Serializable接口

    一.对于ArrayList需要掌握的七点内容 ArrayList的创建:即构造器往ArrayList中添加对象:即add(E)方法获取ArrayList中的单个对象:即get(int index)方法 ...

随机推荐

  1. 我的 Kafka 旅程 - Linux下的安装 & 基础命令

    准备工作 安装解压缩工具 tar # 检查是否安装了解压缩工具 tar yum list tar # 如未安装 tar yum install tar -y 安装必备的 java # 检查是否安装了 ...

  2. git commit、git push、git pull、 git fetch、git merge 的含义与区别

    git commit:是将本地修改过的文件提交到本地库中: git push:是将本地库中的最新信息发送给远程库: git pull:是从远程获取最新版本到本地,并自动merge: git fetch ...

  3. 2. Fluentd事件的生命周期

    事件(Event)是Fluentd内部处理流程使用的数据结构,日志记录一旦进入Fluentd便被封装成一个event.Event由三部分组成:tag.time.record. tag: 标识事件的来源 ...

  4. Java泛型的总结

    泛型可以用于接口.类.方法上.还有泛型通配符这个概念 泛型的好处:可以在编译时检查 1.用于方法中,指定该方法中的形参的类型. 语法:修饰符 <代表泛型的变量> 返回值类型 方法名(参数) ...

  5. PAT (Basic Level) Practice 1028 人口普查 分数 20

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...

  6. 洛谷P2627 [USACO11OPEN]Mowing the Lawn G (单调队列优化DP)

    一道单调队列优化DP的入门题. f[i]表示到第i头牛时获得的最大效率. 状态转移方程:f[i]=max(f[j-1]-sum[j])+sum[i] ,i-k<=j<=i.j的意义表示断点 ...

  7. kubernetes Tcp流量可视化

    kubernetes Tcp流量可视化 使用k8spacket和grafana的node graph插件可以查看kubernetes pod的TCP相关信息,如connection.bytes.和du ...

  8. Python学习笔记----操作字符串

    1.字符串相加.列表相加.列表和字符串不能混着使用 #序列相加 a="hello" b="python" c=a+b print("字符串相加的结果& ...

  9. 一天五道Java面试题----第七天(mysql索引结构,各自的优劣--------->事务的基本特性和隔离级别)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1 .mysql索引结构,各自的优劣 2 .索引的设计原则 3 .mysql锁的类型有哪些 4 .mysql执行计划怎么看 ...

  10. 【第1篇】人工智能(AI)语音测试原理和实践---宣传

    ​前言 本文主要介绍作者关于人工智能(AI)语音测试的各方面知识点和实战技术. 本书共分为9章,第1.2章详细介绍人工智能(AI)语音测试各种知识点和人工智能(AI)语音交互原理:第3.4章介绍人工智 ...