从零开始学Java之List集合有哪些特性?——ArrayList集合
简介
ArrayList是一个数组队列,位于java.util包中,它继承自AbstractList,并实现了List接口。其底层是一个可以动态修改的数组,该数组与普通数组的区别,在于它没有固定的大小限制,我们可以对其动态地进行元素的添加或删除。
存储在集合内的数据被称为”元素“,我们可以利用索引来访问集合中的每个元素。为了方便我们操作这些元素,ArrayList给我们提供了相关的添加、删除、修改、遍历等功能。
因为ArrayList的底层是一个动态数组,所以该集合适合对元素进行快速的随机访问(遍历查询),另外尾部成员的增加和删除操作速度也较快,但是其他位置上元素的插入与删除速度相对较慢。基于这种特性,所以ArrayList具有查询快,增删慢的特点。
常用方法
ArrayList给我们提供了如下这些方法,我们可以先来了解一下:
接下来就挑选几个常用的方法,通过几个案例来给大家讲解一下ArrayList的用法。
添加元素
ArrayList给我们提供了多个与添加相关的方法,比如add()和addAll()方法,可以将元素添加到集合中。另外如果我们要计算ArrayList中元素的数量,可以使用size()方法。
import java.util.ArrayList;
/**
* @author 一一哥Sun
*/
public class Demo05 {
public static void main(String[] args) {
//创建ArrayList集合,<String>中的是泛型,后面我们会专门讲解泛型
ArrayList<String> names = new ArrayList<String>();
//一个一个地添加元素
names.add("一一哥");
names.add("java");
names.add("数学");
//遍历集合
for (String name : names) {
System.out.println("name="+name+",size="+names.size());
}
ArrayList<String> names2 = new ArrayList<String>();
names2.add("壹壹哥");
//在A集合中追加B集合
names2.addAll(names);
//遍历集合
for (String name : names2) {
System.out.println("name="+name);
}
}
}
在上面的代码中,这部分是泛型,壹哥会在后面给大家专门讲解,敬请期待哦。
4. 遍历元素
我们对ArrayList中元素进行遍历的方式,其实与List的遍历是一样的,我们可以使用普通for循环、增强for循环、Iterator迭代器等方式对集合进行遍历,这里我们就不再单独展示其用法了。
5. 修改元素
我们使用add()方法将元素添加到集合中之后,如果想对集合中的元素进行修改,可以使用set()方法。
import java.util.ArrayList;
/**
* @author 一一哥Sun
*/
public class Demo06 {
public static void main(String[] args) {
//创建ArrayList集合,<String>中的是泛型,后面我们会专门讲解泛型
ArrayList<String> names = new ArrayList<String>();
//一个一个地添加元素
names.add("一一哥");
names.add("java");
names.add("数学");
//修改集合中的元素:第一个参数是集合中的索引,第二个是要修改的值
names.set(1, "Android");
names.set(2, "iOS");
//遍历集合
for (String name : names) {
System.out.println("name="+name);
}
}
}
删除元素
如果我们要删除ArrayList中的元素,可以使用remove()、removeAll()等方法。
import java.util.ArrayList;
/**
* @author 一一哥Sun
*/
public class Demo07 {
public static void main(String[] args) {
//创建ArrayList集合,<String>中的是泛型,后面我们会专门讲解泛型
ArrayList<String> names = new ArrayList<String>();
//一个一个地添加元素
names.add("一一哥");
names.add("java");
names.add("数学");
//删除集合中指定位置上的某个元素
names.remove(0);
//删除集合中的某个指定元素
names.remove("java");
//遍历集合
for (String name : names) {
System.out.println("name="+name);
}
ArrayList<String> names2 = new ArrayList<String>();
names2.add("语文");
names2.add("英语");
names2.add("数学");
//删除本集合中的另一个集合
names2.removeAll(names);
//遍历集合
for (String name : names2) {
System.out.println("name2="+name);
}
}
}
集合排序
我们可以使用Collections.sort()方法对集合进行升序排列。
import java.util.ArrayList;
import java.util.Collections;
/**
* @author 一一哥Sun
*/
public class Demo08 {
public static void main(String[] args) {
//创建ArrayList集合
ArrayList<Integer> nums = new ArrayList<>();
//一个一个地添加元素
nums.add(100);
nums.add(85);
nums.add(120);
nums.add(55);
//对集合进行排序,默认是升序排列
Collections.sort(nums);
//遍历集合
for (Integer num : nums) {
System.out.println("num="+num);
}
}
}
猜你喜欢LIKE
相关推荐HOT
更多>>servlet底层原理是什么?
1、ServletAPI核心类与接口2、Servlet类处理请求的流程创建servlet类的步骤:创建一个命名为TestServlet继承javax.servlet.http.HttpServlet类详情>>
2023-05-30 10:41:22多线程的优势与劣势分别是什么?
多线程是指在同一个程序中,同时运行多个线程,每个线程都可以独立执行不同的任务,相互之间不会干扰。多线程的优势和劣势如下:优势:提高程序...详情>>
2023-05-30 10:32:12设计模式之生产者与消费者的代码实现
本文主要讲述生产者和消费者模式,文中会使用通俗易懂的案例,使你更好地学习本章知识点并理解原理,做到有道无术。什么是生产者和消费者模式生...详情>>
2023-05-30 10:25:46从零开始学Java之interface接口
一.接口简介简介Java中的接口(interface)类似于是一种特殊的抽象类,它也是众多抽象方法的集合。接口的定义方式、组成部分都与抽象类相似,却比...详情>>
2023-05-29 11:26:17热门推荐
如何进行mysql数据备份?
沸什么是servlet的生命周期?servlet请求处理流程是怎样的?
热servlet底层原理是什么?
热怎样编写java程序?
新多线程的优势与劣势分别是什么?
ssm框架的作用与原理是什么?
设计模式之生产者与消费者的代码实现
接口和抽象类有什么区别?4个方面对比
从零开始学Java之interface接口
从零开始学Java之Java中的内部类是怎么回事?
一分钟带你了解MySQL——基础与介绍
在java中,super关键字怎样使用
什么是事件流以及事件流的传播机制 ?
弹性盒有哪些属性是在父元素身上?