我正在学习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);
}
}
}
}
答案 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);
}
}