【转】Java中 List的遍历

原文网址:http://blog.csdn.net/player26/article/details/3955906

  1. import java.util.ArrayList;
  2. import java.util.Iterator;
  3. import java.util.List;
  4. public class ListTest {
  5. public static void main(String[] args) {
  6. List<Integer> list = new ArrayList<Integer>();
  7. list.add(1);
  8. list.add(2);
  9. list.add(3);
  10. for (Iterator i = list.iterator(); i.hasNext();)
  11. System.out.println(i.next()); // line 1
  12. }
  13. }
  14. public class ListTest2 {
  15. public static void main(String[] args){
  16. List list = new ArrayList();
  17. list.add(new Integer(100));
  18. list.add(new Float(150.60));
  19. list.add(new String("abc"));
  20. for(Iterator i = list.iterator(); i.hasNext();)
  21. System.out.println(i.next());
  22. //   List<Integer> list = new ArrayList<Integer>();
  23. //         list.add(1);
  24. //         list.add(2);
  25. //         list.add(3);
  26. //         for(Integer i : list){
  27. //         System.out.println(i);        // OK
  28. //         }
  29. }
  30. }
  31. //虽然List的Generic是Integer,但.next()返回的类型是Object
  32. public class ListTest3 {
  33. public static void main(String[] args) {
  34. // List<Integer> list = new ArrayList<Integer>();
  35. // list.add(1);
  36. // list.add(2);
  37. // list.add(3);
  38. // for(Iterator i = list.iterator(); i.hasNext();){
  39. // Integer integerRef = (Integer) i.next(); //line 1
  40. // //Compile Error
  41. // System.out.println(integerRef); // line 2
  42. // }
  43. List<Integer> list = new ArrayList<Integer>();
  44. list.add(1);
  45. list.add(2);
  46. list.add(3);
  47. for (Iterator<Integer> i = list.iterator(); i.hasNext();) {
  48. Integer integerRef = i.next(); // line 1
  49. // OK
  50. System.out.println(integerRef); // line 2
  51. }
  52. }
  53. }

对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);   
       ...   
   }   
   内部不锁定,    效率最高,    但是当写多线程时要考虑并发操作的问题!

时间: 2024-11-05 22:02:57

【转】Java中 List的遍历的相关文章

Java中四种遍历Map对象的方法

方法一:在for-each循环中使用entry来遍历,通过Map.entrySet遍历key和value,这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Integer,Integer> map = new HashMap<Integer,Integer>(); for(Map.Entry<Integer,Integer> entry:map.entrySet()){ System.out.println("key="

Java中map接口 遍历map

java集合框架用于存储数据,也被称为集合类 位于java.util包下 java.util包下常用接口和类 Collection和Map是Java集合框架的根接口 List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问. Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因). Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value. Map接口 Map

Java中的HashMap遍历

import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "a"); map.put(2, "b

Java中List集合遍历的三种方式

首先创建一个List集合: List<String> list = new ArrayList<String>();list.add("name"); list.add("age"); list.add("sex"); 第一种:利用集合的size()方法遍历for(int i= 0:i<list.size();i++){ list.get(i);} 第二种:for增强循环for(String string : str

Java中四种遍历List的方法

1 package com.ietree.basic.collection.loop; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.List; 6 7 /** 8 * List遍历 9 * 10 * @author Dylan 11 */ 12 public class ListLoop { 13 14 public static void main(String[] args)

java中对HashMap遍历的方式

第一种是利用HashMap的entrySet()方法: Map<String,String> map = new HashMap<String,String>(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); String key = entry.getKey(); String val = entry.g

java中LinkedList的遍历速度

我想比较一下用Iterator.for语句.foreach来遍历LinkedList,谁的速度快.于是写了如下代码: package mystudy; import java.util.*; public class MyStudy {     private static final int SIZE = 100000;     private Integer[] arr = new Integer[SIZE];     private AbstractList<Integer> absLi

Java中数组的遍历

(I)标准for循环遍历数组 例如代码片段: int [] nums = new int [] {0,1,2,3,4,5,6,7,8,9}; for(int i=0;i<11;i++){ System.out.println(num[i]); } (II)for-each循环遍历数组 语法: for(<迭代变量声明>:<数组>){ 语句: } 例如代码片段: for(int n : nums){ System.out.println(n); }

Map、List、Set在Java中的各种遍历方法

一.Map的4种遍历 Map<String, String> map = new HashMap<String, String>(); map.put("姓名", "张三"); map.put("属性", "好人"); 1.普遍使用,二次取值 for (String key : map.keySet()) { System.out.println(key + map.get(key)); } 2.通过M