Java 如何遍历ArrayList,然后使用迭代器';下一个方法是什么?

Java 如何遍历ArrayList,然后使用迭代器';下一个方法是什么?,java,Java,提示如下: -从ArrayList获取迭代器并分配给本地 变数 -使用迭代器遍历ArrayList并写入每个数组的toString 迭代器的下一个方法返回到输出文件的CreditCardNumber。 (这次您不需要写任何标签。) 这就是我目前所拥有的。我在写入文件时遇到问题: public static void writeArr(ArrayList<CreditCardNumber> temp) { FileOutputStream outFile = null;

提示如下:

-从ArrayList获取迭代器并分配给本地 变数

-使用迭代器遍历ArrayList并写入每个数组的toString 迭代器的下一个方法返回到输出文件的CreditCardNumber。 (这次您不需要写任何标签。)

这就是我目前所拥有的。我在写入文件时遇到问题:

    public static void writeArr(ArrayList<CreditCardNumber> temp) {
    FileOutputStream outFile = null;
    try {
        outFile = new FileOutputStream("/Users/raska/Desktop/prog6.txt");
    } catch (FileNotFoundException e) {
        System.err.println(e);
        return;
    } // end catch
    Iterator<CreditCardNumber> iter = temp.iterator();
    PrintWriter prtWriter = new PrintWriter(outFile, true);

    while (iter.hasNext()) {
        CreditCardNumber obj = iter.next();
        prtWriter.println(obj);
    }
}
publicstaticvoidwriter(arraylisttemp){
FileOutputStream输出文件=null;
试一试{
outFile=newfileoutputstream(“/Users/raska/Desktop/prog6.txt”);
}catch(filenotfounde异常){
系统错误println(e);
回来
}//端盖
迭代器iter=temp.Iterator();
PrintWriter prtWriter=新的PrintWriter(输出文件,真);
while(iter.hasNext()){
CreditCardNumber obj=iter.next();
prtWriter.println(obj);
}
}
以下是我在ArrayList中的用户输入:

    public static ArrayList<CreditCardNumber> userInputArrList() {
    System.out.println("Enter the number of elements in the array: ");
    int arrLength = scanner.nextInt();
    if (arrLength < 1) {
        arrLength = 1;
    }
    ArrayList<CreditCardNumber> aList = new ArrayList<CreditCardNumber>(arrLength);
    for (int i = 0; i < arrLength;) {
        try {
            System.out.println("Enter an issuer ID# (6 digits) for element #" + i);
            String issuerId = scanner.next();
            System.out.println("Enter an account # (9 digits) for element #" + i);
            String accountNum = scanner.next();
            CreditCardNumber obj = new CreditCardNumber(issuerId, accountNum);
            obj.changeId(issuerId);
            aList.add(obj);
            i++;
        } catch (IllegalArgumentException e) {
            System.out.println(e.toString()); // don't throw just
                                                // print
        }
    }
    return aList;
}
publicstaticarraylistuserinputarrlist(){
System.out.println(“输入数组中的元素数:”);
int arrLength=scanner.nextInt();
如果(arrLength<1){
arrLength=1;
}
ArrayList aList=新的ArrayList(arrLength);
对于(int i=0;i
您可以使用以下示例使用迭代器对数组进行迭代。网上还有很多其他的

   while (iter.hasNext()) {
        CreditCardNumber obj = iter.next();
        System.out.println(obj.toString()); -> line causing problem...you need to write to printWriter...using system.out simple outputs to the console
    }
正确代码:

 while (iter.hasNext()) {
        CreditCardNumber obj = iter.next();
         prtWriter.write(obj.toString()); //hopefully you have overridden toString() in you CreditCardNumber class       
    }

问题是,您从未
close()
PrintWriter
FileOutputStream

在方法结束时,执行以下操作:

try {
    prtWriter.close();
catch (IOException e) {
    // Do some error reporting.
    e.printStackTrace();
}
更好的方法是使用Java的try with resource语句:

public static void writeArr(ArrayList<CreditCardNumber> temp) {
    try (FileOutputStream outFile = new FileOutputStream("/Users/raska/Desktop/prog6.txt")) {

        Iterator<CreditCardNumber> iter = temp.iterator();
        PrintWriter prtWriter = new PrintWriter(outFile, true);

        while (iter.hasNext()) {
            CreditCardNumber obj = iter.next();
            prtWriter.println(obj);
        }
    } catch (IOException e) {
        System.err.println(e);
        return;
    }
}
publicstaticvoidwriter(arraylisttemp){
try(FileOutputStream outFile=newfileoutputstream(“/Users/raska/Desktop/prog6.txt”)){
迭代器iter=temp.Iterator();
PrintWriter prtWriter=新的PrintWriter(输出文件,真);
while(iter.hasNext()){
CreditCardNumber obj=iter.next();
prtWriter.println(obj);
}
}捕获(IOE异常){
系统错误println(e);
回来
}
}

您遇到了什么问题?遍历部分和基本上写入文件。我不知道实现应该是什么样子。你理解循环吗?如果没有,请学习关于循环的Java教程。您可以使用一个简单的
while
循环来实现need@user7我对我的帖子进行了编辑。这似乎是正确的实施方式。有些人无法提供解决方案。只有无缘无故地投反对票