java遍历

java中遍历集合和数组的方法:

(1)for

(2)for..each

(3)iterator

相同点:都可以用来遍历数组和集合

不同点:

1.形式差别

for的形式是

for(int i=0;i<arr.size();i++){...}

foreach的形式是

for(int i:arr){...}

iterator的形式是

Iterator it = arr.iterator();

while(it.hasNext()){ object o =it.next(); ...}

2.条件差别

for需要知道集合或数组的大小,而且需要是有序的,不然无法遍历;

foreach和iterator都不需要知道集合或数组的大小,他们都是得到集合内的每个元素然后进行处理;

3.多态差别

for和foreach都需要先知道集合的类型,甚至是集合内元素的类型,即需要访问内部的成员,不能实现态;

iterator是一个接口类型,他不关心集合或者数组的类型,而且他还能随时修改和删除集合的元素,举个例子:

public void display(Iterator<object> it){

while(it.hasNext()){

system.out.print(it.next()+"");

}

}

当我们需要遍历不同的集合时,我们只需要传递集合的iterator(如arr.iterator())看懂了吧,这就是iterator的好处,

他不包含任何有关他所遍历的序列的类型信息,能够将遍历序列的操作与序列底层的结构分离。迭代器统一了对容器的访问方式。

这也是接口的解耦的最好体现。

4.用法差别

for循环一般用来处理比较简单的有序的,可预知大小的集合或数组

foreach可用于遍历任何集合或数组,而且操作简单易懂,他唯一的不好就是需要了解集合内部类型

iterator是最强大的,他可以随时修改或者删除集合内部的元素,并且是在不需要知道元素和集合的类型的情况下进行的

(原因可参考第三点:多态差别),当你需要对不同的容器实现同样的遍历方式时,迭代器是最好的选择!

时间: 2024-10-13 20:45:58

java遍历的相关文章

Java遍历Map集合方法

package testMap; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /**  * 循环遍历Map集合  *   * @author Administrator  *   */ pub

java遍历泛型的方法

一.List遍历 Java中List遍历有三种方法来遍历泛型,主要为: 1.for循环遍历 2.iterator遍历 3.foreach遍历 package com.gmail.lsgjzhuwei; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.junit.Test; public class test { //第一种方法:for循环遍历 @Test public

java 遍历文件夹里的文件

Java遍历文件夹的2种方法: A.不使用递归: import java.io.File; import java.util.LinkedList; public class FileSystem { public static void main(String[] args) { long a = System.currentTimeMillis(); LinkedList list = new LinkedList(); File dir = new File("c:\\java\\&quo

java遍历文件夹

使用递归: import java.io.File; import java.util.ArrayList; public class FileSystem1 { private static ArrayList filelist = new ArrayList(); public static void main(String[] args) { long a = System.currentTimeMillis(); refreshFileList("C:/Users/shibin/Desk

java 遍历目录

package com.recursion; import java.io.File; public class RecursionFile { public static void main(String[] args) { File file  = new File("G:/A"); tree(file, 0); } private static void tree(File file, int level) { StringBuffer stringBuffer = new St

JAVA 遍历文件夹下的所有文件

JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = 0, folderNum = 0; File file = new File(path); if (file.exists()) { LinkedList<File> list = new LinkedList<File>(); File[] files = file.listFile

Java 遍历Map

Set<Map.Entry<String, String>> aSet = map.entrySet(); Iterator<Map.Entry<String, String>> iter = aSet.iterator(); while(iter.hasNext()){ Map.Entry<String, String> mp = iter.next(); System.out.println(mp.getKey()+" =>

java 遍历所有子节点

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

Java遍历Map键、值。获取Map大小的方法

Map读取键值对,Java遍历Map的两种实现方法 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值 import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class HashMapTest2 { public static void main(String[] args) { HashMap map = new HashMap();

java 遍历map 方法 集合 五种的方法

以下是转载别人的日志,以方便自己以后使用,仅供自己学习之用. package com.jackey.topic; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; //循环遍历map的方法 public class CircleMap {  public