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

如何比较两个ArrayList并提取索引位置相同且元素值一致的索引?(附代码演示)(已解决)

比对两个日期ArrayList,提取索引位置与元素均匹配的索引

如果你需要对比两个存储日期的ArrayList,找出那些索引位置相同且对应日期元素完全一致的索引,下面这个Java实现可以帮你完成需求——它会先随机生成两组日期列表,再在生成第二组列表的过程中实时比对对应索引的元素,匹配时做出标记。

import java.util.ArrayList; 
// 此代码将生成随机日期,并分别存入两个不同的ArrayList,同时标记出索引和元素均匹配的位置
public class similarIndexes { 
    public static void main(String[] args) { 
        // 用于存储日期的两个主ArrayList:
        ArrayList<String> birthdates1 = new ArrayList<String>(); 
        ArrayList<String> birthdates2 = new ArrayList<String>(); 
        // 为随机生成器定义年份、月份和日期的最大最小值:
        int maxY = 2010; 
        int minY = 2020; 
        int maxM = 12; 
        int minM = 1; 
        int maxD = 30; 
        int minD = 1; 
        // 使用for循环生成日期并添加至第一个ArrayList,然后遍历内容并打印:
        System.out.println("First List: "); 
        for(int i = 0; i < 51; i++) { 
            // 生成随机日期,添加至ArrayList并遍历打印:
            int Year = (int)(Math.random() * (maxY - minY + 1) + minY); 
            int Month = (int)(Math.random() * (maxM - minM + 1) + minM); 
            int Day = (int)(Math.random() * (maxD - minD + 1) + minD); 
            birthdates1.add(Day+ "/" +Month+ "/" +Year); 
            System.out.println("Index ["+i+"] Contains a date of: " +birthdates1.get(i)); 
        } 
        // 与第一个for循环逻辑相同,生成日期存入第二个ArrayList并遍历打印:
        System.out.println(); 
        System.out.println("Second List: "); 
        for(int i = 0; i < 51; i++) { 
            // 生成随机日期,添加至ArrayList并遍历打印:
            int Year = (int)(Math.random() * (maxY - minY + 1) + minY); 
            int Month = (int)(Math.random() * (maxM - minM + 1) + minM); 
            int Day = (int)(Math.random() * (maxD - minD + 1) + minD); 
            birthdates2.add(Day+ "/" +Month+ "/" +Year); 
            System.out.println("Index ["+i+"] Contains a date of: " +birthdates2.get(i)); 
            // 新增if条件,当检测到两个索引对应值相同时,打印箭头指向该索引:
            if(birthdates1.get(i).equals(birthdates2.get(i))) { 
                System.out.print(" <--------------------- 该索引的日期与第一组列表完全匹配"); 
            }
            System.out.println(); // 换行保证格式清晰
        } 
    } 
}

关键细节说明:

  • 我们用ArrayList<String>来存储格式化后的日期字符串,方便直接用equals()方法做内容比对
  • 随机日期的生成范围可以根据需求调整:比如修改maxY和minY来改变年份区间,maxD可以根据月份调整为实际的最大天数(当前代码简化为固定30天)
  • 在第二组列表的生成循环中,每生成一个元素就立刻和第一组同索引的元素比对,匹配时打印标记,直观展示结果
  • 循环次数设为51,你可以根据需要修改这个数值来生成不同长度的列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:42:36