java8 遍历数组的几种方式

Python010

java8 遍历数组的几种方式,第1张

list集合的遍历3种方法

[java] view plaincopy

package com.sort

import java.util.ArrayList

import java.util.Iterator

import java.util.List

/**

* list的三种遍历

* @author Owner

*

*/

public class ListTest {

public static void main(String[] args) {

List<String>list = new ArrayList<String>()

list.add("a")

list.add("b")

list.add("c")

list.add("c")//可添加重复数据

//遍历方法一

for(Iterator<String>iterator = list.iterator()iterator.hasNext()){

String value = iterator.next()

System.out.println(value)

}

//遍历方法二

for(String value : list){

System.out.println(value)

}

//遍历方法三

for(int i=0i<list.size()i++){

System.out.println(list.get(i))

}

}

}

三种遍历的比较分析:

方法一遍历:

执行过程中会进行数据锁定,性能稍差,同时,如果你想在循环过程中去掉某个元素,只能调用it.remove方法。

方法二遍历:

内部调用第一种

方法三遍历:

内部不锁定,效率最高,但是当写多线程时要考虑并发操作的问题

List接口的两种主要实现类ArrayList和LinkedList都可以采用这样的方法遍历

关于ArrayList与LinkedList的比较分析

a) ArrayList底层采用数组实现,LinkedList底层采用双向链表实现。

b) 当执行插入或者删除操作时,采用LinkedList比较好。

c) 当执行搜索操作时,采用ArrayList比较好。

JAVA二维数组遍历的方法:

1. 以下给出代码及相关的解释。

int [][]a=new int[8][8]//声明一个一个二维的整型数组。

for (int i=0i<8i++){//进行两次for 循环

for(int j=0j<8j++){

a[i][j]=i+j //给每个元素赋值。

System.out.println(a[i][j])//遍历每个元素,进行打印。

}

}

2.思路: 就是进行两次FOR循环, 就可遍历所有的元素。以此类推, 可知三维数组,就要进行三层的FOR循环。

有两种方法:

1. 使用三层循环遍历多维数组

public class Ransack {

public static void main(String[] args) {

int array[][][] = new int[][][]{ // 创建并初始化数组

{ { 1, 2, 3 }, { 4, 5, 6 } },

{ { 7, 8, 9 }, { 10, 11, 12 } },

{ { 13, 14, 15 }, { 16, 17, 18 } }

}

array[1][0][0] = 97 // 改变指定数组元素

for (int i = 0i <array.lengthi++) { // 遍历数组

for (int j = 0j <array[0].lengthj++) {

for (int k = 0k <array[0][0].lengthk++) {

System.out.print(array[i][j][k] + "\t")

}

System.out.println() // 输出一维数组后换行

}

}

}

2.使用foreach 遍历三维数组

public class ForEachRansack {

public static void main(String[] args) {

int array[][][] = new int[][][]{ // 创建并初始化数组

{ { 1, 2, 3 }, { 4, 5, 6 } },

{ { 7, 8, 9 }, { 10, 11, 12 } },

{ { 13, 14, 15 }, { 16, 17, 18 } }

}

for (int[][] is : array) { // 遍历数组

for (int[] is2 : is) {

for (int i : is2) {

System.out.print(i + "\t")

}

System.out.println() // 输出一维数组后换行

}

}

}

}