`

Java中 List的遍历

阅读更多
import java.util.ArrayList;   
import java.util.Iterator;   
import java.util.List;   
public class ListTest {   
 public static void main(String[] args) {   
  List<Integer> list = new ArrayList<Integer>();   
  list.add(1);   
  list.add(2);   
  list.add(3);   
  for (Iterator i = list.iterator(); i.hasNext();)   
   System.out.println(i.next()); // line 1   
 }   }   
    
public class ListTest2 {   
  public static void main(String[] args){   
         List list = new ArrayList();   
                 list.add(new Integer(100));   
                 list.add(new Float(150.60));   
                 list.add(new String("abc"));   
         for(Iterator i = list.iterator(); i.hasNext();)   
                 System.out.println(i.next());   
    
//   List<Integer> list = new ArrayList<Integer>();   
//         list.add(1);   
//         list.add(2);   
//         list.add(3);   
//         for(Integer i : list){   
//         System.out.println(i);        // OK   
//         }   
       }   
}   
  
//虽然List的Generic是Integer,但.next()返回的类型是Object 
public class ListTest3 {   
 public static void main(String[] args) {   
 // List<Integer> list = new ArrayList<Integer>();   
  // list.add(1);   
  // list.add(2);   
  // list.add(3);   
  // for(Iterator i = list.iterator(); i.hasNext();){   
  // Integer integerRef = (Integer) i.next(); //line 1   
  // //Compile Error   
  // System.out.println(integerRef); // line 2   
  // }  
  List<Integer> list = new ArrayList<Integer>();   
  list.add(1);   
  list.add(2);   
  list.add(3);   
  for (Iterator<Integer> i = list.iterator(); i.hasNext();) {   
   Integer integerRef = i.next(); [color=green]// line 1 [/color]  
   // OK      System.out.println(integerRef); // line 2    }   
 }   
}   
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListTest {
 public static void main(String[] args) {
  List<Integer> list = new ArrayList<Integer>();
  list.add(1);
  list.add(2);
  list.add(3);
  for (Iterator i = list.iterator(); i.hasNext();)
   System.out.println(i.next()); // line 1 }
}
 
public class ListTest2 {
  public static void main(String[] args){
         List list = new ArrayList();
                 list.add(new Integer(100));
                 list.add(new Float(150.60));
                 list.add(new String("abc"));
         for(Iterator i = list.iterator(); i.hasNext();)
                 System.out.println(i.next());
 
//   List<Integer> list = new ArrayList<Integer>();
//         list.add(1);
//         list.add(2);
//         list.add(3);
//         for(Integer i : list){
//         System.out.println(i);        // OK
//         }       }
}
 
//虽然List的Generic是Integer,但.next()返回的类型是Object
public class ListTest3 {
 public static void main(String[] args) {
  // List<Integer> list = new ArrayList<Integer>();
  // list.add(1);
  // list.add(2);
  // list.add(3);
  // for(Iterator i = list.iterator(); i.hasNext();){
  // Integer integerRef = (Integer) i.next(); //line 1
  // //Compile Error
  // System.out.println(integerRef); // line 2
  // } List<Integer> list = new ArrayList<Integer>();
  list.add(1);
  list.add(2);
  list.add(3);
  for (Iterator<Integer> i = list.iterator(); i.hasNext();) {
   Integer integerRef = i.next(); // line 1
   // OK
   System.out.println(integerRef); // line 2
  }
 }
} 

对List的遍历有三种方式  
   
   List<A>    list    =    new    ArrayList<A>();  
   list.add(new    A());  
   list.add(new    A());  
   ...  
   
   第一种:  
   for(Iterator<A>    it    =    list.iterator();    it.hasNext();    )    {  
       ....  
   }  
   这种方式在循环

执行过程中会进行数据锁定,    性能稍差,    同时,如果你想在循环过程中去掉某个元素,只能调用it.remove方法,    不能使用list.remove方法,    否则一定出并发访问的错误.  
   
   第二种:  
   for(A    a    :    list)    {  
       .....  
   }  
   内部调用第一种,    换汤不换药,    这种循环方式还有其他限制,    不建议使用它  
   
   第三种:  
   for(int    i=0;    i<list.size();    i++)    {  
       A    a    =    list.get(i);  
       ...  
   }  
   内部不锁定,    效率最高,    但是当写多线程时要考虑并发操作的问题! 



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Player26/archive/2009/03/04/3955906.aspx
分享到:
评论

相关推荐

    Java 遍历文件夹内文件

    在Java编程中,遍历文件夹内的文件是一项常见的任务,特别是在处理文件系统操作时。这个话题涉及到了Java的I/O(输入/输出)流、文件系统API和递归概念。以下是对这一主题的详细讲解: 首先,Java提供了一个强大的`...

    java List集合遍历测试

    java List集合遍历测试 两个List,list1和list2.

    Freemarker中遍历list集合实例

    在这个例子中,`users`是Java端传递到Freemarker模板的一个list,`user`是循环中的变量,每次迭代时代表`users`列表中的一个元素。`as`关键字用于定义迭代变量。在循环体内,我们可以通过`user`访问当前元素的属性,...

    java-遍历map

    本文将深入探讨如何在Java中使用`keySet`方法来遍历`Map`集合,以及相关的知识点。 ### 一、Java Map接口简介 `Map`接口是Java集合框架的一部分,它提供了存储和检索唯一键对象及其对应的值对象的方法。一个`Map`...

    java遍历JSON树

    本文将详细介绍如何在Java中遍历一个JSON树,并解析其内部结构。 #### 二、所需库及导入 在Java中处理JSON通常需要借助第三方库,例如`json.org`或`fastjson`等。本示例代码使用的是`net.sf.json`包,该包来自`...

    java中循环遍历删除List和Set集合中元素的方法(推荐)

    在Java编程中,遍历并删除集合(如List或Set)中的元素是一项常见的操作,但如果不正确地执行,可能会导致`ConcurrentModificationException`异常。这个异常通常在尝试修改正在迭代的集合时出现,因为Java的集合迭代...

    list遍历集合源码

    在编程领域,集合是数据组织的基本形式之一,而List接口是Java中集合框架的重要组成部分。List接口继承自Collection,它代表一个有序的元素序列,允许重复元素,并且提供了索引访问。本文将深入探讨List接口及其相关...

    Java递归算法遍历部门代码示例

    Java 递归算法遍历部门代码示例 Java 递归算法遍历部门代码示例是指使用 Java 语言实现的递归算法来遍历部门树结构的示例代码。该示例代码主要用于介绍如何使用 Java 递归算法来遍历部门树结构,具有较高的借鉴价值...

    java程序——遍历目录文件

    在Java编程中,遍历目录文件是一项常见的任务,特别是在处理文件系统操作时。这个程序的主要目的是访问指定目录下的所有文件,记录每个文件的基本信息,如文件路径、最后修改时间以及文件大小,然后将这些信息写入到...

    java技巧java中可以用来循环遍历任何一个集合的通用方法

    在Java编程中,经常需要对集合进行遍历操作以处理其中的数据元素。对于不同的集合类型(如`List`、`Set`、`Map`等),如何实现一个统一且高效的遍历方式是非常重要的。本文将详细介绍一种在Java中循环遍历任何一个...

    java 遍历文件目录

    在Java编程中,遍历文件目录是一项常见的任务,特别是在处理大量数据存储或进行文件操作时。这个场景下,我们通常需要获取指定目录下的所有文件和子目录,区分它们是文件还是目录,并根据需要进行进一步的操作,例如...

    java Map 遍历方法

    ### Java Map遍历方法详解 在Java编程语言中,`Map`接口是集合框架中的一个核心组成部分,它存储键值对映射。本篇文章将详细介绍几种常用的遍历`Map...希望这篇文章能帮助大家更好地理解和掌握Java中`Map`的遍历技巧。

    JAVA 遍历图片文件夹的 Java 图形界面

    综上所述,这段代码通过一系列的基本Java API实现了对文件夹的遍历、统计文件和文件夹数量的功能,并且可以将遍历结果输出到文本文件中,并最终打开该文件供用户查看。这对于开发图形用户界面或者简单的文件管理工具...

    java程序的四种遍历

    首先,这段代码主要展示了如何在Java中遍历一个列表(`List`),并且提供了四种不同的遍历方法。接下来,我们将详细介绍这四种遍历方式及其应用场景。 ### 1. 基于索引的传统for循环 这是最传统也是最直观的遍历...

    遍历目录下所有的文件_遍历文件夹文件_java遍历目录下所有文件_

    在Java编程语言中,遍历一个目录下的所有文件和子目录是一项常见的任务,尤其是在处理文件系统操作时。这里我们将深入探讨如何使用Java API来实现这一功能,并解释相关的知识点。 首先,Java提供了`java.io.File`类...

    java多叉树的实现和遍历输出

    本篇文章将深入探讨如何在Java中实现多叉树以及其遍历方法。 首先,我们需要定义一个多叉树节点类。这个类通常包含一个数据字段来存储节点值,以及一个ArrayList或LinkedList等动态数组来存储子节点。以下是一个...

    java遍历list集合.zip

    本资料主要探讨如何遍历Java中的List集合,包括基本的迭代器方式、增强for循环(foreach)以及流(Stream)API的使用。下面我们将深入讲解这些遍历方法。 1. 迭代器(Iterator)遍历: Java中的List接口定义了...

    java遍历文件目录生成树结构txt文件

    在`Dir.java`中,开发者可能使用了`listFiles()`方法递归地遍历每个子目录,并构建出一个树形结构。 遍历文件目录的基本步骤如下: 1. **初始化根目录**:创建`File`对象,表示要遍历的根目录。 2. **获取子目录...

    java中遍历某个目录下的所有文件及文件夹中的文件

    ### Java中遍历某个目录下的所有文件及文件夹中的文件 在Java开发中,经常会遇到需要遍历指定目录及其子目录下所有文件的情况。本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一...

Global site tag (gtag.js) - Google Analytics