說明:System.out.println(array);
這樣是不行的,這樣打印是的是數(shù)組的首地址。
Arrays.toString(array);
一維數(shù)組
-
定義一個數(shù)組:
int[] array = {1, 2, 3, 4, 5};
-
傳統(tǒng)的 for 循環(huán):
for(int i=0;i<array.length;i++)
{
System.out.println(a[i]);
} -
for each 增強(qiáng)循環(huán):
for(int a : array)
System.out.println(a); -
利用Array類中的toString方法
int[] array = {1,2,3,4,5};
System.out.println(Arrays.toString(array));
關(guān)于for each
for each語句是java5的新特征之一,在遍歷數(shù)組、集合方面,for each為開發(fā)人員提供了極大的方便。
for each語句是for語句的特殊簡化版本,但是for each語句并不能完全取代for語句,然而,任何的for each語句都可以改寫為for語句版本。
for each并不是一個關(guān)鍵字,習(xí)慣上將這種特殊的for語句格式稱之為for each語句。從英文字面意思理解for each也就是for 每一個的意思。實(shí)際上也就是這個意思。
for each直接()中聲明了arg引用,不需要在代碼塊中專門聲明。int i也不再必要了,for each會循環(huán)到args中無值可取為止。
顯然,單純?yōu)榱吮闅v數(shù)組或容器對象中的每個元素,for each比for-index在編碼上更合適。在可讀性方法,for each很容易讓人知道設(shè)計(jì)者希望遍歷冒號后面對象的全部元素。
String[] args = {"a", "b", "c"};
for (String arg : args) {
System.out.println(arg);
}
哪些類型的對象可以適用for each
- 數(shù)組
- Collection類
- 任何實(shí)現(xiàn)了Iterable接口的自定義類
(根據(jù)面向接口的思想,Deolin習(xí)慣把第三類對象稱之為“可迭代的”對象)
第一類,第二類在實(shí)際開發(fā)中經(jīng)常用到,而第三類能夠適用for each的原因需要通過源碼來進(jìn)行分析。
二維數(shù)組
-
對于二維數(shù)組也對應(yīng)這三種方法,定義一個二維數(shù)組:
int[] [] magicSquare =
{
{16,3,2,13},
{5,10,11,8},
{9,6,7,3}
};
-
傳統(tǒng)的for循環(huán)方式
for(int i=0;i<magicSquare.length;i++)
{
for(int j=0;j<magicSquare[i].length;j++)
{
System.out.print(magicSquare[i][j]+" ");
}
System.out.println(); //換行
} -
for each 增強(qiáng)循環(huán)
for(int[] a:magicSquare)
{
for(int b:a)
{
System.out.print(b+" ");
}
System.out.println();//換行
} -
利用Array類中的toString方法
for(int i=0;i<magicSquare.length;i++)
System.out.println(Arrays.toString(magicSquare[i]));