杨老师课堂之ArrayList集合解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 杨老师课堂之ArrayList集合解析

1.概述

在前面我们学习了数组,数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变。例如,要保存一个学校的学生,由于不停有新生来报道,同时也有学生毕业离开学校,这时学生的数目很难确定。为了保存这些数目不确定的元素,JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合。在这里,我们先介绍ArrayList集合,其他集合在后续课程中学习。


ArrayList集合是程序中最常见的一种集合,它属于引用数据类(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。


2.

1.1集合的创建

创建集合的常用格式在此说明一下:

导包:import java.util.ArrayList;

创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:

ArrayList<要存储元素的数据类型>变量名 = new ArrayList<要存储元素的数据类型>();

1、集合中存储的元素,只能为<>括号中指定的数据类型元素;

2、“<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型;


我们通过举几个例子,来明确集合的创建方式:

  • 存储String类型的元素
  • ArrayList list = new ArrayList();
  • 存储int类型的数据
  • ArrayList list = new ArrayList();
  • 存储Phone类型的数据
  • ArrayListlist = new ArrayList();
1.2 集合中常用方法

接下来,我们来学习下ArrayList集合提供的一些常用方法,如下表:


通过代码演示上述方法的使用:ArrayListDemo01.java

package cn.javabs.list.demo;
import java.util.ArrayList;
public class ArrayListDemo01 {
 public static void main(String[] args) {
   // 创建ArrayList集合
   ArrayList<String> list = new ArrayList<String>();
   // 向集合中添加元素
   list.add("stu1");
   list.add("stu2");
   list.add("stu3");
   list.add("stu4");
   // 获取集合中元素的个数
   System.out.println("集合的长度:" + list.size());
   // 取出并打印指定位置的元素
   System.out.println("第1个元素是:" + list.get(0));
   System.out.println("第2个元素是:" + list.get(1));
   System.out.println("第3个元素是:" + list.get(2));
   System.out.println("第4个元素是:" + list.get(3));
 }
}

代码运行后截图:


1.3 集合中常用方法

通过集合遍历,得到集合中每个元素,这是集合中最常见的操作。集合的遍历与数组的遍历很像,都是通过索引的方式,集合遍历方式如下:ArrayListDemo02.java

1 package cn.javabs.list.demo;
2  import java.util.ArrayList;
3  public class ArrayListDemo02 {
4    public static void main(String[] args) {
5      //创建ArrayList集合
6      ArrayList<Integer> list = new ArrayList<Integer>();
7      //添加元素到集合
8      list.add(13);
9      list.add(15);
10      list.add(22);
11      list.add(29);
12      //遍历集合
13      for (int i = 0; i < list.size() ; i++) {
14        //通过索引,获取到集合中每个元素
15        int n = list.get(i) ;
16        System.out.println(n);
17      }
18    }
19  }

上述代码中,第5行定义了一个可以存储int元素的集合;第7-10行,实现将int类型数值存储到集合中;

第12-16行,实现遍历集合元素。这里要强调一点,get方法返回值的类型为集合中元素的类型。

1.4 集合中的常用方法补充

ArrayList集合提供的一些常用方法,如下表:


  • boolean add(int index, Object obj)
  • 功能:在集合中指定index位置,添加新元素obj
  • 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用add(1,“javaWeb”)后,集合list中的元素为[“java”,“javaWeb”,“JavaEE”]。

Object set(int index, Object obj)

  • 功能:用指定元素obj替代集合中指定index位置的元素
  • 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用set(0,“javaWeb”)后,集合list中的元素为[“javaWeb”,“JavaEE”]。
  • Object remve(int index)


  • 功能:从集合中删除指定index处的元素,返回该元素
  • 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用remove(0)后,集合list中的元素为[“JavaEE”],返回值为“java”。

void clear()

  • 功能:清空集合中所有元素
  • 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用clear()后,集合list中的元素为空[ ]。

目录
打赏
0
0
0
0
11
分享
相关文章
|
6月前
|
深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
72 3
|
5月前
|
Java中的集合框架深入解析
【10月更文挑战第32天】本文旨在为读者揭开Java集合框架的神秘面纱,通过深入浅出的方式介绍其内部结构与运作机制。我们将从集合框架的设计哲学出发,探讨其如何影响我们的编程实践,并配以代码示例,展示如何在真实场景中应用这些知识。无论你是Java新手还是资深开发者,这篇文章都将为你提供新的视角和实用技巧。
59 0
Java中的集合框架深度解析云上守护:云计算与网络安全的协同进化
【8月更文挑战第29天】在Java的世界中,集合框架是数据结构的代言人。它不仅让数据存储变得优雅而高效,还为程序员提供了一套丰富的工具箱。本文将带你深入理解集合框架的设计哲学,探索其背后的原理,并分享一些实用的使用技巧。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇通往高效编程的大门。
|
8月前
|
在 Java 中解析 JSON ArrayList 的详细指南
【8月更文挑战第23天】
181 1
Java中的集合框架深度解析与实践
【8月更文挑战第31天】在Java编程的海洋中,集合框架扮演着不可或缺的角色。本文将带你领略Java集合框架的魅力,从理论到实践,深入浅出地探索List、Set和Map等核心接口的使用技巧。我们将通过具体代码示例,展示如何在日常开发中高效运用这些工具,让你的代码更加优雅和高效。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往Java集合世界的大门。
|
8月前
|
【Python 3】Set集合的解析与使用
文章介绍了Python中Set集合的用法,包括如何创建集合、添加和删除元素,以及如何进行元素计数和成员资格检查。
51 0
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
87 29
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等