比较两个arraylists然后添加匹配到特定的文本文件

时间:2016-03-08 18:36:17

标签: java

我有两个arraylists个名字。我想比较两者。如果第一个数组中的名称等于第二个数组中的名称,我想创建一个名为“name j”的文本文件,其中j是找到匹配名称的索引。现在它似乎能够找到两个匹配的名称,但不能找到最后一个。我不确定为什么找不到最后一个。

这是我的代码:

ArrayList <String> names = new ArrayList ();
        names.add("Stephen");
        names.add("James");
        names.add("Billy");
        names.add("Connor");
        names.add("Katie");

        ArrayList <String> names2 = new ArrayList();
        names2.add("Carlos");
        names2.add("Katie");
        names2.add("James");
        names2.add("Cameron");
        names.add("Blly");

        int i,j;
        i=0;
        j=0;

        int nameSize = names.size();
        int names2Size = names2.size();
        int checkMatches=0;
       // boolean endOfList = false;

        while (i<nameSize)  {
            if (names.get(i).equals(names2.get(j))) {
                //increase i b/c of match
                System.out.println("Match " + names.get(i));
                infoToFile(j,i,names);
                i++;
            } else if (j == names2Size-1) {
                System.out.println("No Match");
                i++;
                j=0;
            } else  {
                System.out.println("No Match");
                j++;
            }
        }

public static  void infoToFile(int j,int i,ArrayList <String> names)    {
        Writer output;
        try {
            output = new BufferedWriter(new FileWriter("name " + j + ".txt",true));
            output.append(names.get(i) + "\n");
            output.close();
        } catch (IOException ex) {
            Logger.getLogger(RosterPractice.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

0 个答案:

没有答案