Java遍历数组
示例
您可以使用增强的for循环(akaforeach)或使用数组索引来遍历数组:
int[] array = new int[10]; //使用索引:读写 for (int i = 0; i < array.length; i++) { array[i] = i; }
//扩展为:只读 for (int e : array) { System.out.println(e); }
在这里值得注意的是,没有直接的方法可以在数组上使用迭代器,但是通过数组库,可以很容易地将其转换为列表以获取Iterable对象。
对于盒装数组,请使用Arrays.asList:
Integer[] boxed = {1, 2, 3}; Iterable<Integer> boxedIt = Arrays.asList(boxed); //列表支持的可迭代 Iterator<Integer> fromBoxed1 = boxedIt.iterator();
对于原始数组(使用Java8),请使用流(在此示例中特别是Arrays.stream-->IntStream):
int[] primitives = {1, 2, 3}; IntStream primitiveStream = Arrays.stream(primitives); //列表支持的可迭代 PrimitiveIterator.OfInt fromPrimitive1 = primitiveStream.iterator();
如果您不能使用流(没有Java8),则可以选择使用Google的番石榴库:
Iterable<Integer> fromPrimitive2 = Ints.asList(primitives);
在二维数组或更高的数组中,两种技术都可以以稍微复杂一些的方式使用。
例:
int[][] array = new int[10][10]; for (int indexOuter = 0; indexOuter < array.length; indexOuter++) { for (int indexInner = 0; indexInner < array[indexOuter].length; indexInner++) { array[indexOuter][indexInner] = indexOuter + indexInner; } }
for (int[] numbers : array) { for (int value : numbers) { System.out.println(value); } }