[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() // 输出一维数组后换行
}
}
}
}