首页 > 其他分享 >集合框架(三)ArrayList的常见使用

集合框架(三)ArrayList的常见使用

时间:2023-12-01 20:34:25浏览次数:41  
标签:删除 框架 ArrayList 元素 list 列表 数组 集合

ArrayList

1、动态数组实现
ArrayList 的底层是一个数组,当数组空间不足时,会自动扩容为当前容量的1.5倍(JDK1.4及以前的版本扩容为当前容量的2倍)。扩容是通过创建一个新的数组,并将原始数组中的元素拷贝到新数组中完成的。

2、与数组相比具有动态增长
与普通数组相比,ArrayList 具有动态增长的能力,可以根据需要动态扩容/缩容。在实际开发中,动态增长意味着可以在程序运行时可根据需要添加/删除元素,这极大地提高了代码的灵活性。

3、非同步集合
ArrayList 不是同步集合,如果需要在多线程环境下访问该集合,需要手动实现线程同步。

4、随机访问元素效率高
ArrayList 中的元素是依次存放在一个数组中的,因此它具有随机访问元素的能力,即可以通过下标操作快速访问数组中任何一个元素。

5、添加/删除元素效率低
因为 ArrayList 的底层是基于数组实现的,当需要插入/删除元素时,需要移动后面的元素,这将导致插入/删除操作效率降低,时间复杂度为 O(N)。

6、实现了多种接口
ArrayList 实现了多种接口,包括 List、RandomAccess、Cloneable 和 Serializable 接口。

ArrayList的常见使用
1. add(Object element):向列表的尾部添加指定的元素,一次只能添加一个。

2. add(int index, Object element):在列表的指定位置插入指定的元素。

3. remove(Object element):从列表中删除指定的元素,如果有多个相同的元素,只删除第一个。

4. remove(int index):从列表中删除指定位置的元素。

5. get(int index):返回列表中指定位置的元素。

6. set(int index, Object element):用指定的元素替换列表中指定位置的元素。

7. size():返回列表中元素的数量。

8. clear():从列表中删除所有元素。

9. isEmpty():如果列表中没有元素,则返回true。

10. contains(Object element):如果列表中包含指定的元素,则返回true。

基本使用:
创建ArrayList对象

ArrayList<String> list = new ArrayList<String>();
添加元素

list.add("apple");
list.add("banana");
list.add("orange");
获取元素

String fruit = list.get(0); // 获取第一个元素
修改元素

list.set(0, "pear"); // 将第一个元素修改为pear
删除元素

list.remove(0); // 删除第一个元素
获取ArrayList的大小

int size = list.size(); // 获取ArrayList的大小
遍历ArrayList

for (String fruit : list) {
System.out.println(fruit);

————————————————
版权声明:本文为CSDN博主「小池敲代码了吗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_73245042/article/details/134742990

博客来源:转载我自己

标签:删除,框架,ArrayList,元素,list,列表,数组,集合
From: https://www.cnblogs.com/cq971/p/17870815.html

相关文章

  • Java集合框架详解
    Java集合框架是什么?Java中的集合框架指的是一组接口、类和算法,用于存储和操作一组对象。这些对象可以是基本类型、自定义类型或其他Java对象集合框架提供了更加高效、灵活和功能丰富的数据结构,而不限于数组或其他简单的数据结构。通过使用Java的集合框架,可以大大提高代码的可......
  • 集合LinkedList的常见使用
    什么是LinkedList集合LinkedList集合是Java编程语言中的一种双向链表数据结构,它实现了List接口和Deque接口。与ArrayList类似,LinkedList也是一种动态数组,可以根据需要动态地增加或减少元素的大小。然而,LinkedList与ArrayList在内部实现和性能方面有所不同Lin......
  • 集合框架(二)LinkedList的常见使用
    LinkedList:非同步集合LinkedList不是同步集合,如果需要在多线程环境下访问该集合,需要手动实现线程同步。双向链表实现LinkedList内部使用双向链表来表示集合元素,每个节点都存储了元素、前驱节点和后继节点信息。添加/删除元素的效率较高由于是链表实现,LinkedList的添加/删除......
  • 集合框架Map的常见使用及循环的五中方式
    Map集合是什么?Map集合是一种以键值对形式存储和操作数据的数据结构,建立了key-value之间的映射关系,常用于存储和处理复杂的数据Map集合的主要特点:Map和List不同,Map是一种双列集合;Map存储的是key-value的映射关系;Map不保证顺序。在遍历时,遍历的顺序不一定是put......
  • ArrayList的常见方法和使用
    ArrayList的常见方法和使用1.add(Objectelement):向列表的尾部添加指定的元素,一次只能添加一个。ArrayListlist=newArrayList();list.add("jim");list.add("tom");list.add("kk");System.out.println(list......
  • 《深度学习入门——自制框架》读书笔记
    1.自动微分step2创建变量的函数#箱子类,存放一个变量数据classVariable: def__init__(self,data): self.data=data#函数类的基类classFunction:#__call__方法是一个特殊的Python方法。#定义了这个方法后,当f=Function()时,就可以通过编写f(...)来......
  • 案例解析关于ArkUI框架中ForEach的潜在陷阱与性能优化
    本文分享自华为云社区《深入解析ForEach的潜在陷阱与性能优化:错误用法与性能下降的案例分析》,作者:柠檬味拥抱。在ArkUI框架中,ForEach接口是基于数组类型数据进行循环渲染的强大工具。它需要与容器组件搭配使用,并能够根据数据源动态生成相应的子组件。以下是对ForEach接口的详细......
  • 直播网站源码,写一个android底部导航栏框架
    直播网站源码,写一个android底部导航栏框架import'package:flutter/material.dart'; voidmain(){ runApp(MyApp());} classMyAppextendsStatelessWidget{ @override Widgetbuild(BuildContextcontext){  returnMaterialApp(   title:'BottomNaviga......
  • 掌握HarmonyOS框架的ArkTs如何管理和共享状态数据
    本文分享自华为云社区《深入理解ArkTs中的AppStorage和LocalStorage》,作者:柠檬味拥抱。ARKTS(ArkTypeScript)是HarmonyOS应用框架的一部分,提供了一种灵活而强大的状态管理机制。在ARKTS中,AppStorage和LocalStorage是两个关键的概念,它们分别用于应用级和页面级的状态共享。通过深......
  • ssh框架原理及流程
    1.hibernate工作原理:读取并解析配置文件读取并解析映射信息,创建sessionFactory打开session创建事务transaction持久化操作提交事务关闭session关闭sessionFactory  为什么使用:对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码是一个基于jdbc的主流持久性框......