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. Elasticsearch : alias数据类型

    就像其他的很多语言一样,我们可以给已有的变量取一个别名(alias).即便是对高级语言一样,比如我们定义不同的指针变量,指向同一个内存空间.这个有些类似别名的概念. 在Elasticsearch中,我 ...

  2. MongoDB $type 操作符

    描述 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 数字 备注 Double 1 String 2 Object 3 ...

  3. Elasticsearch from/size-浅分页查询-深分页 scroll-深分页search_after深度查询区别使用及应用场景

    Elasticsearch调研深度查询 1.from/size 浅分页查询 一般的分页需求我们可以使用from和size的方式实现,但是这种的分页方式在深分页的场景下应该是避免使用的.深分页的页次增加 ...

  4. PAT (Basic Level) Practice 1009 说反话 分数 20

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...

  5. 如何通过 Java 代码隐藏 Word 文档中的指定段落

    在编辑Word文档时,我们有时需要将一些重要信息保密. 因此,可以隐藏它们以确保机密性. 在本文中,将向您介绍如何通过 Java 程序中的代码隐藏 Word 文档中的特定段落.下面是我整理的具体步骤, ...

  6. SpringBoot课程学习(一)

    @SpringBootTest指定测试的启动类 声明@SpringBootTest @Test注解 @Test 指定测试方法 @Order排序 一:先声明排序模式 @TestMethodOrder(M ...

  7. H3C交换机配置DHCP服务器

    dhcp server ip-pool vlan4020 network 10.3.7.0 mask 255.255.255.0 gateway-list 10.3.7.254 dns-list 20 ...

  8. POJ3417 Network暗的连锁 (树上差分)

    树上的边差分,x++,y++,lca(x,y)-=2. m条边可以看做将树上的一部分边覆盖,就用差分,x=1,表示x与fa(x)之间的边被覆盖一次,m次处理后跑一遍dfs统计子树和,每个节点子树和va ...

  9. 动词时态=>3.现在时态和过去时态构成详解

    现在时态构成详解 一般现在时态 最容易构成的时态,直接加动词原形(字典当中显示的词条)就可以 第三人称"单数"的话需要加s 这是最容易出错的时态:容易将 现在的时间,和一般的状态: ...

  10. 学习ASP.NET Core Blazor编程系列八——数据校验

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...