You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java Stream按索引对比两个等长字符串数组实现包含校验

基于Stream API的实现方案

你可以通过IntStream生成索引流配合allMatch方法实现,该写法和原for循环的短路逻辑一致,遇到不匹配项会立即终止遍历,性能和原有实现完全相同,写法更简洁:

import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;

public class MatchTest {
    public static void main(String[] args) {
        List<String> mainArray = Arrays.asList("Red book", "Yellow bird", "Green sky");
        List<String> subArray = Arrays.asList("Red", "Yellow", "Green");

        // 可选:提前校验两个列表长度是否一致,避免索引越界
        if (mainArray.size() != subArray.size()) {
            System.out.println(false);
            return;
        }

        boolean result = IntStream.range(0, mainArray.size())
                .allMatch(i -> mainArray.get(i).contains(subArray.get(i)));

        System.out.println(result); // 输出true
    }
}

逻辑说明

  • IntStream.range(0, mainArray.size())会生成从0到列表长度减1的连续整数,对应两个列表的所有索引位置
  • allMatch方法用于校验流中所有元素是否都满足给定条件,只要有一个索引位置的元素不满足包含关系,就会立即停止遍历返回false,等效于原代码中的break逻辑
  • 所有位置都满足条件时最终返回true

内容的提问来源于stack exchange,提问作者magicmushroom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:15:03