乘以二维阵列列表

时间:2015-02-28 21:33:13

标签: java arraylist

我正在学习ArrayLists。我所要做的就是将两个不同的ArrayLists相乘。以下是代码。代码从用户输入生成一个ArrayList,第二个ArrayList在代码中给出。

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class prog3 {

    public static void main(String[] args) {

        ArrayList<ArrayList<Integer>> array = new ArrayList<ArrayList<Integer>>();
        Scanner sc = new Scanner(System.in);
        System.out.println("enter the number of rows ");
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            array.add(new ArrayList<Integer>());
            for (int j = 0; j < 2; j++) {
                array.get(i).add(sc.nextInt());
            }
        }
        Iterator it = array.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }

        ArrayList<ArrayList<Integer>> arr = new
                ArrayList<ArrayList<Integer>>();
        arr.add(new ArrayList<Integer>());
        arr.add(new ArrayList<Integer>());

        arr.get(0).add(5);
        arr.get(0).add(4);
        arr.get(1).add(7);
        arr.get(1).add(8);
        Iterator it2 = arr.iterator();
        while (it2.hasNext()) {
            System.out.println(it2.next());
        }

        for (int r = 0; r < array.size(); r++) {
            for (int h = 0; h < arr.size(); h++) {

                System.out.println(r * h);
            }
        }
    }
}

3 个答案:

答案 0 :(得分:1)

您将索引r和h相乘,而不是由r和h索引的列表元素。这是你的问题。解决这个问题,您将获得预期的结果。

答案 1 :(得分:0)

以下代码将您Integer中每个元素的array元素中的每个arr元素与 for (int r = 0; r < array.size(); r++) { for (int h = 0; h < arr.size(); h++) { System.out.println(":array.get(" + r + ") * arr.get(" + h + "):"); for (int i = 0; i < array.get(r).size(); i++) { for (int j = 0; j < arr.get(h).size(); j++) { int n1 = array.get(r).get(i); int n2 = arr.get(h).get(j); System.out.println(n1 + " * " + n2 + " = " + (n1 * n2)); } } } } 中的每个元素相乘。虽然你的问题在预期产出方面并不完全清楚,但至少应该给你一些暗示。

{{1}}

答案 2 :(得分:0)

我终于得到了答案..发布的是我的代码。

  int r=0,k=0;
  int sum = 0;
    while((r < array.size()) &&(k < arr.size())) {
        int i=0,o = 0;
        int u=0;
        while((i < array.get(r).size())&&(o < arr.get(k).size()) ) {

            int s = array.get(r).get(i);
            int  e = arr.get(k).get(o);
            sum = sum + (s*e);


            i = i + 1;
            o=o+1;
        }



        r++;
        k++;
    }

  System.out.println(sum);
    }
}