使用 forEach 循环在 Java 中展平数组流13 2025年5月 | 阅读 3 分钟 给定一个数组流。任务是使用 forEach() 方法展平数组流。 示例 1 输入: Array [][] = { {1, 2, 3}, {4, 5}, {6, 7, 8, 9} } 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9] 解释: 遍历每个子数组,并将其元素按顺序添加到单个列表中。 示例 2 输入: Array [][] = { {'a', 'b', 'c'}, {'d', 'e'}, {'f', 'g', 'h', 'i'} } 输出: [a, b, c, d, e, f, g, h, i] 解释: 遍历每个子数组(字符数组),并将所有字符按顺序添加到列表中,形成一个展平的列表。 示例 3 输入: Array [][] = { {7}, {8, 9, 10}, {11, 12} } 输出 [7, 8, 9, 10, 11, 12] 解释: 单个元素的子数组和多个元素的子数组被合并成一个单一的序列。 示例 4 输入: Array [][] = { {'@', '#', '$'}, {'%', '^'}, {'&', '*', '!', '~'} } 输出 [@, #, $, %, ^, &, *, !, ~] 解释: 从每个子数组中提取特殊字符并存储在输出列表中。 方法 1:使用整数数组该方法使用 Streams 和 forEach() 来迭代子数组并将每个元素添加到列表中。 步骤 1: 初始化一个空列表来存储展平的元素。 步骤 2: 使用 Arrays.stream() 迭代每个子数组。 步骤 3: 对于每个子数组,使用 for-each 循环迭代其元素,并将它们添加到列表中。 步骤 4: 打印展平的列表作为最终输出。 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9] 时间复杂度: 由于使用 forEach 循环遍历所有元素,因此程序的 O(n) 时间复杂度。 空间复杂度: 由于我们将所有元素存储在列表中,因此程序的 O(n) 空间复杂度。 方法 2:使用字符数组该方法使用 Streams 和 forEach() 循环将字符数组转换为一个包含所有字符按顺序排列的单层列表。 步骤 1: 初始化一个空列表来存储展平的字符。 步骤 2: 使用 Arrays.stream() 迭代每个子数组(字符数组)。 步骤 3: 对于每个子数组,使用 for-each 循环迭代其元素,并将它们添加到列表中。 步骤 4: 打印展平的列表作为最终输出。 输出 [a, b, c, d, e, f, g, h, i] 时间复杂度: 由于使用 forEach 循环遍历所有元素,因此程序的 O(n) 时间复杂度。 空间复杂度: 由于我们将所有元素存储在列表中,因此程序的 O(n) 空间复杂度。 下一主题Java 中的运算符关联性 |
Rabin-Karp 算法是一种高效的字符串匹配方法,它使用哈希来在文本中查找模式。它不单独检查每个字符,而是计算模式的哈希值,并将其与文本子串的哈希值进行比较。当哈希匹配时...
阅读 6 分钟
Java 中静态方法的覆盖(Shadowing)是指在同一作用域内存在两个同名静态方法。第一个方法被称为被第二个方法覆盖。当...时,第二个方法将优先于第一个方法...
阅读 3 分钟
红黑树是一种特殊的二叉搜索树,具有自平衡特性。红黑树的每个节点都有一个额外的位,该位始终被解释为颜色。为了在插入、更新和删除过程中保持红黑树的平衡,...
阅读 8 分钟
CharsetDecoder 类的函数 isDetected() 方法用于确定在使用启用自动检测的解码器时,给定输入的字符集是否已正确识别。默认使用此方法时,始终会引发 UnsupportedOperationException。自动检测解码器应覆盖它...
阅读 3 分钟
? LinkedHashMap 类似于 Java 编程中的 HashMap,但它具有额外的功能。它维护着元素添加顺序的记录。标准的 HashMap 中的元素没有固定的顺序。为了记住插入的键的顺序,LinkedHashMap 采用...
5 分钟阅读
? Java 中的静态代码块是独特的代码段,它们仅在类初始化期间运行一次。它们通常用于执行一次性设置操作,例如初始化静态变量或任何其他必要的设置。静态块会自动由...执行
阅读 3 分钟
在 Java 中,当字符前面有一个反斜杠(\)时,它被称为 Java 转义序列或转义字符。请记住,转义序列必须用双引号("")括起来。它们用于表示难以或不可能直接表示的字符...
阅读 4 分钟
数组中缺失的数字问题是与编码相关的面试中广泛使用的问题之一。此问题涉及尝试从包含 n 个不同整数(从一到 n+1)的数组中识别一个缺失的数字。因此,这个...中只有一个数字。
阅读 4 分钟
? Lambda 是匿名函数,在运行时定义,因此很难在 Java 中对其进行模拟。但是,可以使用 Mockito 或 PowerMock 等几种强大的模拟框架来模拟 lambda 表达式并在 Java 中对其进行有效测试。使用 Mockito,一个...
阅读 4 分钟
Java 中的递归是一个函数/方法不断调用自身的进程。在编程语言中,如果程序允许我们在相同的方法名称内调用一个方法,则称为递归调用。它使代码最小化,但具有挑战性...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India