【问题标题】:Pascal's Triangle using ArrayList [duplicate]使用 ArrayList 的帕斯卡三角形 [重复]
【发布时间】:2016-03-14 02:04:20
【问题描述】:

您好,我正在尝试使用 arraylist 创建一个帕斯卡三角形,在下面的代码中的第 25 行出现并发修改异常,请帮助,我是使用 arraylist 的新手。 第 25 行是.. temp = i.next();

public class PascalT {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner s = new Scanner(System.in);
        System.out.println("enter number");
        int inp = s.nextInt();
        s.close();
        ArrayList<ArrayList<String>> g = new ArrayList<ArrayList<String>>(inp);
        ArrayList<String> t1 = new ArrayList<>();
        t1.add("1");
        t1.add("1");
        g.add(t1);
        int ii = 0;
        ArrayList<String> temp;
        Iterator<ArrayList<String>> i = g.iterator();
        while (i.hasNext() & ii < inp) {
            temp = i.next();
            Iterator<String> i2 = temp.iterator();
            ArrayList<String> tmp = new ArrayList<String>();
            tmp.add("1");
            String temp2 = "";
            while (i2.hasNext()) {
                temp2 = Integer.toString(Integer.parseInt(i2.next())
                        + Integer.parseInt(i2.next()));
                tmp.add(temp2);
            }
            tmp.add("1");
            g.add(tmp);
            tmp.clear();
            ii++;
        }

        for (ArrayList<String> al : g) {
            System.out.println("line");
            String row = "";
            for (String sss : al) {
                row = row + " " + sss;
            }
            System.out.println(row);
        }
    }
}

【问题讨论】:

  • 我认为有一些更简单的方法可以做一个帕斯卡三角形。
  • @DevilsHnd 不,请阅读下面的答案。
  • 真的...删除了我的评论。谢谢。
  • 我已经删除了 Pascal 标签,因为您的问题与 Pascal 编程语言完全无关。这里的标签有特定的含义。请在使用之前阅读任何标签的说明,以便您了解 特定 含义并查看它是否适用于您的问题,而不是仅仅添加那些您觉得熟悉或不同的词比标签的意义。谢谢。

标签: java exception arraylist


【解决方案1】:

您不能在迭代列表时修改它。 你ig 的迭代器。在循环结束时,当你做g.add(tmp)时,它会使迭代器失效,下次你尝试使用它时,你会得到一个异常。

我会建议一种为您修复它的方法,但是您选择的变量名太可怕了,我不知道您的代码在做什么,而且我懒得弄清楚。我认为,简单地摆脱i 并用g.get(ii) 替换temp = i.next() 应该可以解决问题。

【讨论】:

  • 谢谢.. 用 get 函数替换迭代器解决了这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 2014-11-12
相关资源
最近更新 更多