当前位置: 首页 > news >正文

做装饰网站公司网页设计与制作课程评价内实

做装饰网站公司,网页设计与制作课程评价内实,宝山做网站价格,海口今天的消息十分想念顺店杂可。。。ArrayList 是 Java 集合框架中最常用的类之一,实现了 List 接口,底层基于动态数组实现,支持动态扩容,相比普通数组更灵活。以下是其详细介绍及用法:一、核心特性动态大小:无需预先指…
十分想念顺店杂可。。。

ArrayList 是 Java 集合框架中最常用的类之一,实现了 List 接口,底层基于动态数组实现,支持动态扩容,相比普通数组更灵活。以下是其详细介绍及用法:

一、核心特性

  1. 动态大小:无需预先指定容量,可自动扩容(初始容量为 10,满后扩容为原容量的 1.5 倍)。
  2. 允许重复元素:可存储多个相同值的元素。
  3. 有序集合:元素按插入顺序排列,支持通过索引访问。
  4. 非线程安全:多线程环境下并发修改可能导致异常(需手动同步或使用 CopyOnWriteArrayList)。
  5. 存储引用类型:只能存储对象(基本类型需用包装类,如 Integer 而非 int)。

二、基本用法(代码示例)

1. 引入包与创建对象

ArrayList 位于 java.util 包,需先导入,创建时需指定泛型(元素类型):

import java.util.ArrayList;
import java.util.List;public class ArrayListDemo {public static void main(String[] args) {// 创建存储String类型的ArrayList(推荐声明为List接口)List<String> list = new ArrayList<>();// 可指定初始容量(减少扩容次数,优化性能)List<Integer> numList = new ArrayList<>(20); // 初始容量20}
}
2. 常用方法
(1)添加元素:add()
List<String> list = new ArrayList<>();
list.add("Java"); // 末尾添加元素 → [Java]
list.add(0, "Python"); // 指定索引插入 → [Python, Java](索引需≤当前size)
list.addAll(List.of("C", "C++")); // 批量添加 → [Python, Java, C, C++]
(2)访问元素:get()

通过索引获取元素(索引从 0 开始,需注意 IndexOutOfBoundsException):

String first = list.get(0); // 获取第1个元素 → "Python"
int size = list.size(); // 获取元素个数 → 4
(3)修改元素:set()

替换指定索引的元素,返回被替换的旧值:

String old = list.set(1, "JavaScript"); // 替换索引1的元素 → 旧值"Java"
// 此时list为 [Python, JavaScript, C, C++]
(4)删除元素:remove()
String removed = list.remove(2); // 移除索引2的元素 → 返回"C",list变为 [Python, JavaScript, C++]
boolean isRemoved = list.remove("C++"); // 移除指定值的元素 → 返回true,list变为 [Python, JavaScript]
(5)判断与查找
boolean isEmpty = list.isEmpty(); // 判断是否为空 → false
boolean contains = list.contains("Python"); // 是否包含指定元素 → true
int index = list.indexOf("JavaScript"); // 首次出现的索引 → 1
int lastIndex = list.lastIndexOf("Python"); // 最后出现的索引 → 0(元素唯一时与indexOf相同)
(6)清空与截取
list.clear(); // 清空所有元素 → list变为空
List<String> subList = list.subList(0, 2); // 截取子列表(从索引0到2,不含2)→ [Python, JavaScript]
3. 遍历方式
(1)普通 for 循环(通过索引)
for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));
}
(2)增强 for 循环(foreach)
for (String element : list) {System.out.println(element);
}
(3)迭代器(Iterator

支持在遍历中安全删除元素:

import java.util.Iterator;Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {String element = iterator.next();if (element.equals("Python")) {iterator.remove(); // 安全删除当前元素}
}
(4)Java 8+ 流(Stream)
list.stream().forEach(System.out::println); // 简化遍历

三、注意事项

  1. 扩容机制:当元素数量超过当前容量时,ArrayList 会自动扩容为原容量的 1.5 倍(通过 Arrays.copyOf() 复制数组)。若预知元素数量,创建时指定初始容量可减少扩容次数(提升性能)。

  2. 与数组的转换

    // ArrayList → 数组
    String[] arr = list.toArray(new String[0]); // 推荐传递类型数组,避免强制转换// 数组 → ArrayList(注意:返回的是固定大小的List,不能添加/删除元素)
    List<String> fixedList = Arrays.asList(arr); 
    // 若需可变List,需再包装一次:
    List<String> mutableList = new ArrayList<>(Arrays.asList(arr));
    

  3. 与 LinkedList 的对比

    • ArrayList 基于数组,随机访问快get(index) 时间复杂度 O (1)),增删中间元素慢(需移动元素,O (n))。
    • LinkedList 基于链表,增删中间元素快(O(1)),随机访问慢(O(n))。
    • 频繁查改选 ArrayList,频繁增删中间元素选 LinkedList
  4. 线程安全:多线程环境下,可使用 Collections.synchronizedList() 包装:

    List<String> safeList = Collections.synchronizedList(new ArrayList<>());
    

四、总结

ArrayList 是日常开发中最常用的 List 实现,以动态数组为核心,兼顾灵活性与访问效率,适合大多数场景。掌握其 add()get()remove() 等方法及遍历方式,结合扩容机制和线程安全特性,可更高效地使用。

http://www.dtcms.com/a/543873.html

相关文章:

  • 做网站公司排名多少钱wordpress 音乐列表
  • 网站开发流程包括需求分析怎样更换动易2006网站模板
  • 宜春网站建设公司cn域名与com域名
  • 长裕建设有限公司网站网站营销外包
  • 北京创意网站建设如何宣传推广
  • 网站制作的网站开发濮阳网站建设电话
  • ngrok做网站服务器cloud域名注册网站
  • 晋中建设集团网站谷歌seo网站推广怎么做优化
  • 数据库怎么做网站建设网站包维护
  • 专业seo网站优化推广排名教程跨境电商排名前十名品牌
  • 互动网站开发北京好的广告公司
  • 沧州市网站设计威海优化推广
  • 微信网站制作免费惠州网红
  • 教育直播平台网站建设费用海口seo外包服务
  • 怎么提升网站流量网站注册qq
  • 建设个人网站赚钱的经历云南哪有网站建设推广
  • html5 可以做网站吗域名注册网站系统
  • 做交通工程刬线的网站公司进一步优化供给推动消费平稳增长
  • 工会网站建设的重要性金华市网站建设公司
  • 鄂州网站建设与设计微信推广怎么弄
  • 南宁本地网站wordpress 手机 模板制作
  • 动漫做视频在线观看网站苏州口碑好的保洁公司
  • 登陆网站怎么做临沂网站建设公司全国
  • 网站开通wordpress 显示pdf
  • 制作网站怎样找公司来帮做做网站怎么租用服务器
  • 简述营销导向的企业网站建设的步骤深圳求职网站哪个好
  • 网站定制建设公司做视频导航网站有哪些
  • 哪个网站可以领手工回家做做网站需要备几个案
  • 网站网页优化网站登陆界面psd
  • 物流网站大全做美容有哪些网站