乘以二维数组列表
Multiplying two dimensional Array lists
我正在学习 ArrayLists。我要做的就是将两个不同的 ArrayList 相乘。下面给出的是代码。该代码根据用户输入生成一个 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);
}
}
}
}
您乘以索引 r 和 h,而不是 r 和 h 索引的列表元素。这是你的问题。解决这个问题,您将获得预期的结果。
以下代码将 array
中的每个 Integer
元素乘以 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));
}
}
}
}
我终于得到了答案..下面是我的代码。
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);
}
}
我正在学习 ArrayLists。我要做的就是将两个不同的 ArrayList 相乘。下面给出的是代码。该代码根据用户输入生成一个 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);
}
}
}
}
您乘以索引 r 和 h,而不是 r 和 h 索引的列表元素。这是你的问题。解决这个问题,您将获得预期的结果。
以下代码将 array
中的每个 Integer
元素乘以 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));
}
}
}
}
我终于得到了答案..下面是我的代码。
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);
}
}