Java中的ArrayList、List、[]、Arrays等都是个啥

在Java开发中那些场景推荐使用那些类?

  1. ArrayList

    当需要一个动态大小的数组,可以动态增长和缩减时,推荐使用 ArrayList。它提供了高效的随机访问和常数时间的插入/删除操作。

  2. Arrays 类

    当需要对数组进行排序、搜索或比较时,推荐使用 Arrays 类中的方法。例如,Arrays.sort() 可以对数组进行排序,Arrays.binarySearch() 可以在已排序的数组中执行二分查找。

  3. 多维数组

    当需要表示多维数据结构时,例如矩阵、二维表格等,推荐使用多维数组。Java 中支持二维、三维甚至更高维度的数组。

  4. 可变参数(Varargs)

    当方法需要接受数量可变的参数时,推荐使用可变参数。这样可以使方法调用更加灵活,不需要指定固定数量的参数。

  5. System.arraycopy() 方法

    当需要在数组之间进行元素的复制时,推荐使用 System.arraycopy() 方法。它可以在不同大小的数组之间复制元素,或者对同一数组内的不同位置进行复制。

  6. foreach 循环

    当需要遍历数组或集合中的元素时,推荐使用 foreach 循环。它可以更简洁地遍历数组或集合中的元素,提高代码的可读性和简洁性。

遍历数组的时候,使用foreach还是stream流?

  1. foreach 循环

    foreach 循环是一种简洁的遍历数组或集合的方式,适用于简单的遍历操作。它不需要额外的导入,语法清晰明了,易于理解和使用。如果只需要简单地遍历数组并对每个元素执行相同的操作,使用 foreach 循环会更加直观和简单。

  2. Stream 流

    如果需要对数组进行更复杂的操作,如筛选、映射、过滤、排序等,可以使用 Stream 流。Stream 提供了丰富的中间操作和终端操作,可以实现更加灵活和功能强大的数据处理。特别是在需要对数组进行并行处理或进行链式操作时,Stream 流是一个非常强大的工具。

Stream 是 Java 8 引入的一个强大的概念,用于对集合进行函数式操作。推荐在以下场景使用 Stream 流:

  1. 集合处理

    当需要对集合进行复杂的处理,如筛选、映射、过滤、排序等操作时,可以使用 Stream 流。它提供了丰富的中间操作和终端操作,可以极大地简化集合处理的代码。

  2. 并行处理

    Stream 流支持并行处理,可以通过 parallel() 方法将顺序流转换为并行流,从而充分利用多核处理器的性能。在处理大数据量或复杂计算时,可以使用并行流提高处理速度。

  3. 数据转换

    当需要对集合中的元素进行转换或映射时,可以使用 Stream 流的 map() 方法。这可以帮助将集合中的元素转换为另一种类型或进行属性提取等操作。

  4. 数据过滤

    使用 Stream 流的 filter() 方法可以轻松地对集合中的元素进行条件过滤,只保留满足特定条件的元素。

  5. 汇总与统计

    Stream 流提供了各种终端操作,如 count()sum()average() 等,可以方便地对集合中的元素进行汇总和统计。

  6. 流式 API

    Stream 流提供了一种更具表现力和简洁的编程风格,可以链式调用多个操作,形成流式 API,提高代码的可读性和可维护性。

Java中的System类都有啥功能啊?

虽然 System 类提供了很多功能,但常用的功能主要集中在以下几个方面,具体使用场景如下:

  1. 标准输入输出

    • System.outSystem.err 通常用于打印程序的输出和错误信息到控制台。这在调试程序或输出用户友好的信息时非常常见。
  2. 退出虚拟机

    • System.exit(int status) 通常在程序需要立即终止执行时使用。比如,在发生严重错误或程序执行完成后,使用该方法可以退出虚拟机,并返回一个状态码。
  3. 数组复制

    • System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 主要用于在两个数组之间进行元素的复制。这在需要高效地复制数组内容时非常有用,比如数组拷贝、数组扩容等场景。
  4. 获取当前时间

    • System.currentTimeMillis() 用于获取当前系统时间的毫秒数。这在需要计算代码执行时间或记录时间戳时非常有用。
  5. 垃圾回收

    • System.gc() 可以请求垃圾回收器运行,但并不能保证立即执行垃圾回收。通常情况下,不需要显式调用该方法,因为 Java 虚拟机会自动进行垃圾回收。

Varargs???

可变参数。听到这个懂了没,得懂得话,自己去百度Java可变参数,自行了解吧(这不难)

相关推荐
艾迪的技术之路16 分钟前
redisson使用lock导致死锁问题
java·后端·面试
今天背单词了吗98034 分钟前
算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·后端·算法·最短路径问题
天天摸鱼的java工程师37 分钟前
使用 Spring Boot 整合高德地图实现路线规划功能
java·后端
东阳马生架构1 小时前
订单初版—2.生单链路中的技术问题说明文档
java
咖啡啡不加糖1 小时前
暴力破解漏洞与命令执行漏洞
java·后端·web安全
风象南1 小时前
SpringBoot敏感配置项加密与解密实战
java·spring boot·后端
DKPT1 小时前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
Percep_gan1 小时前
idea的使用小技巧,个人向
java·ide·intellij-idea
缘来是庄1 小时前
设计模式之迭代器模式
java·设计模式·迭代器模式