黑马程序员技术交流社区

标题: 如何用for语句遍历输出一个二维数组?自己尝试了很久. [打印本页]

作者: 零敢    时间: 2013-12-18 15:52
标题: 如何用for语句遍历输出一个二维数组?自己尝试了很久.
我是想用for的新形式输出;因为传统形式很麻烦;如下:
for(int x:array){}
这种形式如何输出一个二维数组呢?
一维的很简单就是依照上面的格式填上去得了;二维以上的我就不会了.....求高手解答
作者: 風諾    时间: 2013-12-18 16:00
这样:
  1. public class PrintArray {
  2.         public static void main(String[] args) {
  3.                 int[][] arrays = new int[][]{{1,2},{7,5,3,5},{1},{9,5,6}};
  4.                 for (int[] array : arrays) {
  5.                         for (int arr : array) {
  6.                                 System.out.print(arr + "\t");
  7.                         }
  8.                         System.out.println();
  9.                 }
  10.         }

  11. }
复制代码

作者: 天涯十步    时间: 2013-12-18 16:04
public class TestArray {          public static void main(String[] args) {                 // 定义一个长度为10的数组                 int a[][] = new int[10][8];                 // 为数组中每个元素赋值                 for (int i = 0; i < a.length; i++) {                         for (int j = 0; j < a[i].length; j++)                                 a[i][j] = i * j;                  }                  // 用泛型遍历输出数组                 for (int[] arr : a) {                         for (int arr2 : arr) {                                 System.out.print(arr2 + "\t");                         }                         // 每打印完一个a[i][0]-a[i][8]就换行                         System.out.println();                 }         }  }
作者: 刘松703    时间: 2013-12-18 16:07
int[][] n = new int[][]{{1,2,3},{4,23,2},{6,3,2}};
                for(int[] n1:n){
                        for(int n2:n1){
                                System.out.println(n2);
                        }
                }
作者: 汪伟楠    时间: 2013-12-18 16:08
public class ErWei
{
        public static void main(String[] args)
        {
                int b [] [] =new int [] [] {{1,2},{2,3,4},{4,5,6,7}};
                for(int k = 0;k<b.length;k++)
                {
                         for(int c=0;c<b[k].length;c++)
                        {
                                System.out.print(b[k][c]);
          
                        }
                           System.out.println();//输出
                           System.out.println("b["+k+"].length:"+b[k].length);
                  
                }
        }
}
看看这个ok不。
作者: hurryup    时间: 2013-12-18 16:11
思路就是先遍历一维的数组再遍历二维的数组
作者: 豆晨阳    时间: 2013-12-18 16:16
本帖最后由 豆晨阳 于 2013-12-18 16:19 编辑

JAVA的for循环新用法:foreach SE 5.0(Enhanced for Loop)引入了一种新的更加简洁的for语法用于数组和容器,及foreach语法,又称强化的for循环,表示不必创建整型变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。其基本语法如下: for(type element:array) { 语句或块 //循环体 } 其应用对象之一是在数组的依次存取上,下面通过实例加以说明
int[] arr={1,2,3,4,5};
for(int element:arr) //对比原来程序 for(int i=0;i<arr.length;i++)
System.out.print(element + ","); //输出:1,2,3,4,5,
每一次从arr中取出的元素会自动设定给element,你不用自行判断是否超过了数组的长度,注意element的类型必须与数组元素的元素类型相同。
如果是二维数组,可以把数组本身当成一个对象,这样就会知道如何使用foreach存取二维数组。
举个例子:
int [][]arr= { {1,2,3}, {4,5,6}, {7,8,9} };
for(int[] row : arr)
{
for(int element : row)
{
System.out.println(element);
}
}

作者: 夏德宇    时间: 2013-12-18 20:41
代码如下:
  1. public class Test {
  2.         final static int i = 0;
  3.         public static void main(String[] args) {
  4.                 int[][] aa = {{1,2,3},{4,5,6,7},{8,9},{3,2,5}};
  5.                 //从二维数组aa中得到一维数组a
  6.                 for(int[] a : aa){
  7.                         //从一维数组a中得到元素i,并输出
  8.                         for(int i : a){
  9.                                 System.out.print(i + " ");
  10.                         }
  11.                         System.out.println();
  12.                 }
  13.         }
  14. }
复制代码

二维数组其实就是一维数组为元素的普通一维数组
像遍历一维数组一样,去的里面的元素,只不过元素是引用类型变量--数组,再遍历取出元素,就行了。
作者: 夏德宇    时间: 2013-12-18 20:44
前面漏删了一条多余代码,抱歉
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 int[][] aa = {{1,2,3},{4,5,6,7},{8,9},{3,2,5}};
  4.                 //从二维数组aa中得到一维数组a
  5.                 for(int[] a : aa){
  6.                         //从一维数组a中得到元素i,并输出
  7.                         for(int i : a){
  8.                                 System.out.print(i + " ");
  9.                         }
  10.                         System.out.println();
  11.                 }
  12.         }
  13. }
复制代码

作者: 夏德宇    时间: 2013-12-18 20:47
二维数组其实就是一维数组为元素的普通一维数组。
像遍历一维数组一样,遍历里面的元素,只不过元素类型是数组,再遍历,取出元素,就行了。
作者: 末末    时间: 2013-12-18 20:51
  1. public class Demo8
  2. {
  3.     public static void main(String[] args)
  4.     {
  5.             int[][] arr={{1,54,534,2,3},{432,54,64,535},{34,3432,432,43,2},{432,4324,32,354,5}};
  6.             for(int[] a:arr)
  7.             {
  8.                     for(int a2:a)
  9.                     {
  10.                             System.out.println(a2);
  11.                     }
  12.             }
  13.     }
  14. }
复制代码
试试
作者: 75100313    时间: 2013-12-18 21:42
二维数组的思路就是一维数组里面放一维数组
作者: panzhenglian    时间: 2013-12-19 11:40
本帖最后由 panzhenglian 于 2013-12-19 11:45 编辑
  1. for(int a=0;a<jieshu;a++){
  2.            for(int b=0;b<jieshu;b++){
  3.                      System.out.print(hfsz[a][b]+"\t");
  4.            }
  5.            System.out.println("\n");
  6. }
复制代码
控数组的下标即可,这是我做的幻方中抽出来的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2