遍历Collection集合中的6种方法:

下面的代码演示了遍历Collection集合的6种方法,注意Collection集合的遍历远不止于增强for循环,和迭代器两种。

代码如下:

  1 package com.qls.traverse;
  2
  3 import java.util.ArrayList;
  4 import java.util.Arrays;
  5 import java.util.Collections;
  6 import java.util.Enumeration;
  7 import java.util.Iterator;
  8 import java.util.LinkedList;
  9 import java.util.List;
 10 import java.util.Stack;
 11
 12 /**
 13  * 下面是遍历Collection的几种方法,以List接口为例:
 14  * @author 秦林森
 15  *
 16  */
 17 public class ListTest {
 18
 19     public static void main(String[] args) {
 20         // TODO Auto-generated method stub
 21         String[] s="sixi is one of the most beautiful villages in china".split(" ");
 22         List<String> list = Arrays.asList(s);
 23         /**
 24          * 第一种方法用增强for循环。(这里List之所以能用增强for循环其原因在于它实现了Iterable接口)
 25          */
 26         for(String str:list){
 27             System.out.print(str+" ");
 28         }
 29         System.out.println();
 30         System.out.println("************");
 31         /**
 32          * 第二种方法用Iterator
 33          */
 34         Iterator<String> it = list.iterator();
 35         while(it.hasNext()){
 36             String next = it.next();
 37             System.out.print(next+" ");
 38         }
 39         System.out.println();
 40         System.out.println("************");
 41         /**
 42          * 第三种方法主要针对LinkedList。因为LinkedList 既有栈(stack)的特点,又有队列(Queue)
 43          * 的特点。所以遍历LinkedList中的元素。根据stack和queue,可以进行相关的遍历。
 44          * 遍历的方法如下所示:
 45          */
 46         //Using linkedList as a stack
 47         LinkedList<String> list2=new LinkedList<>(list);//创建一个LinkeList包含list中的全部元素。
 48         while(!list2.isEmpty()){
 49             System.out.print(list2.removeFirst()+" ");
 50         }
 51         System.out.println();
 52         System.out.println("************");
 53         /**
 54          * Using linkedList as a queue
 55          */
 56         LinkedList<String> list3=new LinkedList<>(list);
 57         while(list3.peek() != null){
 58             System.out.print(list3.poll()+" ");
 59         }
 60         System.out.println();
 61         System.out.println("************");
 62         /**
 63          * 第四种方法把所有的Collection都可以当做Enumeration进行遍历
 64          * Collections.enumeration(c)
 65          */
 66         ArrayList<String> list4=new ArrayList<>(list);
 67         Enumeration<String> e = Collections.enumeration(list4);
 68         while(e.hasMoreElements()){
 69             System.out.print(e.nextElement()+" ");
 70         }
 71         /**第五种方法
 72          * 当然还有其他方法如:
 73          */
 74         System.out.println();
 75         System.out.println("************");
 76         for(int i=0;i<list4.size();i++){
 77             System.out.print(list4.get(i)+" ");
 78         }
 79         System.out.println();
 80         System.out.println("************");
 81         /**第六种方法:
 82          *再如:
 83          */
 84         while(!list4.isEmpty()){
 85             int index=0;
 86             System.out.print(    list4.remove(index++)+" ");
 87         }
 88         /**
 89          * 备注:在List接口中的所有实现类中最常用的是ArrayList   LinkedList
 90          * ArraList比LinkedList的速度快,一般情况下选中ArrayList的情况比LinkedList多。
 91          * 在ArrayList源码中有一个serialVersionUID,这个数字保证了,
 92          * 写入文件(ObjectOutputStream.writeObject(Object))
 93          * 读取文件(ObjectInputStream.readObject())可以顺利进行,
 94          * 并且指明这个数字,可以保持各个版本的兼容性。有利于文件传输。
 95          */
 96
 97     }
 98
 99 }/*Output:
100 sixi is one of the most beautiful villages in china
101 ************
102 sixi is one of the most beautiful villages in china
103 ************
104 sixi is one of the most beautiful villages in china
105 ************
106 sixi is one of the most beautiful villages in china
107 ************
108 sixi is one of the most beautiful villages in china
109 ************
110 sixi is one of the most beautiful villages in china
111 ************
112 sixi is one of the most beautiful villages in china *///:~
时间: 2024-08-02 06:57:26

遍历Collection集合中的6种方法:的相关文章

泛型限定的练习。获取Collection集合中的最大值

/** *    泛型限定的练习.★★★★★ 获取Collection集合中的最大值.(解决问题按照一下的要求做) 1 先定义了一个方法中明确具体元素类型的getMax_1. 2 由于getMax_1无法获取其他类型元素的最大值.提高扩展性,操作所有对象. 就升级为了Object .getMax_2 3 因为定义成Object,什么类型都可以接收,容易出现运行时的ClassCastException 所以使用泛型,对要操作的元素进行类型的限定. 思路: 1.获取元素最大值的方法,通常是拿一个对象

Power BI官方视频(2) Power BI嵌入到应用中的3种方法

今天给大家介绍3种将Power BI嵌入到应用中的方法. 本文原文地址:Power BI官方视频(2) Power BI嵌入到应用中的3种方法 Power BI系列文章地址:微软Power BI技术文章与资源目录 1.Publish to Web 最直接最简单的方法,将你的报表发布到网络上.嵌入到自己的web系统中: 但是其确定是没有权限控制,知道url都可以访问,所以要注意使用场合: 2.使用REST APIs 可以更加灵活的使用API进行权限控制,但是需要注册Azure AD,不过不好的消息

java.util.Map按照key值合并的value的Collection 集合中。

用java实现把多个map的内容合并的一个resultMap中 代码大致如下 /** * @author Shalf */ public class MapUtil { /** * 把partMap数据合并放到resultMap中. * @param resultMap * @param partMap */ public static <T, F, K extends Collection<F>> void merge2ResultMap(Map<T, K> resu

div盒子水平居垂直中的几种方法

div盒子水平居垂直中的几种方法<!DOCTYPE html><html>    <head>        <mete charset="utf-8"/>        <style>            *{                margin: 0;                padding: 0;            }            /*方案1.使用transforms属性的translate

Java Collection集合中的iterator方法

Iterator接口的概述 /** * java.util.Iterator接口:选代器(对集合进行遍历) * 有两个常用的方法 * boolean hasNext() * 如果仍有元素可以迭代,则返回true. * 即判断集合中还有没有下ー个元素,有就返回true,没有就返回 false * E next() * 返回送代的下一个元素. * 即取出集合中的下一个元素 * iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象. * 获取实现类的方式比较特

Map集合中value()方法与keySet()、entrySet()区别

http://blog.csdn.net/liu826710/article/details/9001254 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet():将Map中所有的键存入到set集合中.因为set具备迭代器.所有可以迭代方式取出所有的键,再根据get方法.获取每一个键对应的值. keySet():迭代后只能通过get()取key entrySet(): Set<Map.Entry<K,V>> entrySet(

ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)

转自:http://www.cnblogs.com/zyqgold/archive/2010/11/22/1884779.html 在ASP.NET MVC框架中,将视图中的数据传递到控制器中,主要通过发送表单实现的.具体使用中,主要使用以下三种方法. 1.通过Request.Form读取表单数据        2.通过FormCollection读取表单数据        3.直接读取表单数据对象 下边是我学习这些东西时的一点总结 1.通过Request.Form读取表单数据      首先定

List集合去重的一种方法 z

需要对一个List<Model>集合去重,情况是该集合中会出现多个Name属性值相同的,但是其他属性值不同的数据. 在这种情况下,需求要只保留其中一个就好. 我觉得遍历和HashSet都不是我想要的,便采用了一下方式 定义Compare类,继承IEqualityComparer接口 public class ComparerHelper : IEqualityComparer<Model> { public bool Equals(Model x, Model y) { retur

将Web应用发布到tomcat中的三种方法

坑啊,为什么网易的博客不能搬过来!!!我一个一个复制过来容易嘛!!!!原文地址:http://buffalo-l.blog.163.com/blog/static/24495402220153911184810/?newFollowBlog 第一种:在Server.xml的<Host>标签中,配置<Context>标签 在toncat的安装目录中找到安装目录/cof/serve.xml . 修改SERVE.XML文件,在<HOST>标签中增加一个<Context&