在java中删除数组的第一个元素而不使用

在java中删除数组的第一个元素而不使用,java,Java,我正在尝试读取文件中的一行并将其存储在数组中,执行此操作后,我希望删除数组中的第一个元素,以便长度可以减少1个元素,并使数组的长度与另一个数组相同,以便使用for循环匹配两个数组。我想从文件中读取的行是 “伦敦2 7 24 16-15 8 27” 试试看{ 文件myObj=新文件(“temperatures.txt”); FileReader read=新的FileReader(myObj); 扫描仪myReader=新扫描仪(myObj); 扫描仪输入=新扫描仪(System.in); Lin

我正在尝试读取文件中的一行并将其存储在数组中,执行此操作后,我希望删除数组中的第一个元素,以便长度可以减少1个元素,并使数组的长度与另一个数组相同,以便使用for循环匹配两个数组。我想从文件中读取的行是 “伦敦2 7 24 16-15 8 27”

试试看{
文件myObj=新文件(“temperatures.txt”);
FileReader read=新的FileReader(myObj);
扫描仪myReader=新扫描仪(myObj);
扫描仪输入=新扫描仪(System.in);
LineNumberReader lines=新的LineNumberReader(读取);
行.跳过(长.最大值);
int len=lines.getLineNumber();
整数计数=len;
字符串ans;
对于(int i=0;i
为什么不在循环中的getData[]的索引值中添加+1

System.out.println(days[j] + ": " +getData[j+1]);

您的问题有几种可能的解决方案

  • 根本不删除元素
  • 您可以像这样并行迭代2个数组:

    for (int j = 0; j < days.length; j++) {
        System.out.println(days[j] + ": " + getData[j + 1]);
    }
    
    然后可以使用
    newData
    而不是
    getData
    来打印数字

  • 使用集合或流
  • 我不会详细介绍,但您可以从数组中构造一个集合(例如ArrayList),从列表中删除第一个元素(因为与数组不同,您可以实际删除列表中的元素),然后迭代列表(无需创建另一个数组)。或者,您可以从数组创建流,跳过第一个元素(流具有
    skip
    方法),然后将流复制到数组中


    但对我来说,这种方式对于这样一项简单的任务来说太过分了。我认为即使是创建一个副本也有点太多了。您最好只使用第一个解决方案,这是最简单的。

    我不想将getData的第一个元素添加到循环中,这样我就可以将数字与日期匹配。我不想将getData的第一个元素添加到循环中,这样我就可以将数字与日期匹配
    for (int j = 0; j < days.length; j++) {
        System.out.println(days[j] + ": " + getData[j + 1]);
    }
    
    String[] newData = new String[getData.length - 1];
    for (int j = 0; j < newData.length; j++) {
        newData[j] = getData[j + 1];
    }