如何遍历多维数组的列

我使用多维数组来存储特定销售人员(1到4个销售人员)销售的产品总量(产品范围1到5)。

T在第1行到第4行中安排了salesPersons,在第1列到第5列中安排了产品ID。

我唯一不能做的是专门遍历行以获得每个产品的总数,即第1列:第1行到第4行的总和=总产品1,第2列:第1行到第4行的总和=产品2总数等。

请参阅测试salesTest应用程序代码,然后是Sales类:

/* test application for sales class */ package salestest; import SalesLibary.Sales; public class SalesTest { public static void main(String[] args) { // pass monthly stats to 4r(salespesons) * c5(products 1 to 5) using initialization method int monthlySales [][]= {{13, 23, 45, 67, 56}, {43, 65, 76, 89, 90}, {43, 45, 76, 98, 90}, {34, 56, 76, 43, 87}}; //pass default values to constructor when creating object of class Sales companySales = new Sales("Monneys Inc.", monthlySales); companySales.displayMessage(); companySales.displaySales(); }//end main }//end SalesTest class //class Sales with associated methods /* Chapter 7: Practical Question 2 */ package SalesLibary; public class Sales { //declare fields/members private int salesTotals[][]; private String companyName; //passs string and two dimensional array of sales stats to constructor from application object public Sales(String name, int monthlySales[][]) { companyName = name; salesTotals = monthlySales; }//end constructor public void setCompanyName(String name) { companyName = name; } public String getCompanyName() { return companyName; } public void displaySales() { //table heading System.out.printf("The monthly sales stats for company %s are: ", companyName); System.out.println(" ");//set columns headings //create column headings representing products sold 1 to 5 by looping thru each colmn of row(salsperson) System.out.print(" "); for (int product = 0; product < salesTotals[0].length; product++) { System.out.printf("Product %d ", product + 1); } System.out.println("Total "); //create rows of table represnting salespersons 1 too 4, ten loop through array and print element for (int salesPerson = 0; salesPerson < salesTotals.length; salesPerson++) { System.out.printf("SalesPerson %2d", salesPerson + 1); //use nested for loop to output all results for (int total : salesTotals[salesPerson]) { System.out.printf("%10d", total); } //call method to get total for each sales person by passing //a row of products sold for each sales person to method double total = getTotal(salesTotals[salesPerson]); System.out.printf("%10.2f\n", total); }//end outer for System.out.println("Product Total: "); double productSum = getTotalProduct(); System.out.printf("%10.2f", productSum); //enumerate through each column and get sum to represent product total }//end method Display sales //method to calculate total, argument is array of results public double getTotal(int salesTotals[]) { int total = 0; //loop thru array passed for (int count : salesTotals) { total += count; } return total; }// end get salesPerson tital //display message public void displayMessage() { System.out.printf("\nWlecome to %s monthly sales summaries!!!\n\n", getCompanyName()); }//end display message //get total product sold public double getTotalProduct() { int productTotal[]; int totalProduct = 0; //loop through array passed for (int salesPerson = 0; salesPerson < salesTotals.length; salesPerson++) { //go through each column of row[row] productTotal = salesTotals[salesPerson]; //loop thirugh product total and get sum for (int count : productTotal) { totalProduct += count; } }//end outer for loop return totalProduct; }// end get salesPerson total }//end Sales class 

迭代二维数组中的单个行k

 for (int j = 0; j < multiarray[k].length; j++) multiarray[k][j]; // do something 

并在二维数组中迭代单个列k

 for (int i = 0; i < multiarray.length; i++) multiarray[i][k]; // do something 

假设你有一个二维数组

 int[][] salesData={{13, 23, 45, 67, 56}, {43, 65, 76, 89, 90}, {43, 45, 76, 98, 90}, {34, 56, 76, 43, 87}}; 

所以它是一个4 * 5的矩阵

int [0]代表第一行,即{13,23,45,67,56},如果你需要单个单元格中的值,你需要为每个循环迭代2

  for (int[] rowData: salesData){ for(int cellData: rowData) { System.out.printn("the indiviual data is" +cellData); } } 

首先,如果不需要,请不要使用所有代码。 你只需要声明,也许一个for循环。

循环列:

 for(int i=0; i 

知道了:)有点像海难试图想象arrays但最终到达那里,欢呼帮助

 //loop thorugh each column to get total products sold for (int product = 0; product < salesTotals[0].length; product++) { int totalProduct = 0; for (int salePerson = 0; salePerson < salesTotals.length; salePerson++) { totalProduct += salesTotals[salePerson][product]; }//end inner for System.out.printf("%10d", totalProduct); }//end outer for