>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 27238 个阅读者 刷新本主题
 * 贴子主题:  Java入门实用代码:集合遍历 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-21 16:34:30     消息  查看  搜索  好友  邮件  复制  引用

  

Java 实例 - 集合遍历

以下实例演示了如何遍历从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型的集合,以下我们分别使用了普通for,增强型的 for ,iterator 等方式来遍历集合:    

List与Set类型集合的遍历

Main.java 文件

import   java . util . ArrayList ;
import   java . util . HashSet ;
import   java . util . Iterator ;
import   java . util . List ;
import   java . util . Set ;

public   class   Main   {

    public   static   void   main ( String [ ]   args )   {
       //  List集合的遍历  
       listTest ( ) ;
       //  Set集合的遍历  
       setTest ( ) ;
    }

    private   static   void   setTest ( )   {
       Set < String >  set  =  new   HashSet < String > ( ) ;
       set . add ( " JAVA " ) ;
       set . add ( " C " ) ;
       set . add ( " C++ " ) ;
       //  重复数据添加失败  
       set . add ( " JAVA " ) ;
       set . add ( " JAVASCRIPT " ) ;

       //  使用iterator遍历set集合  
       Iterator < String >  it  =  set . iterator ( ) ;
       while   ( it . hasNext ( ) )   {
          String   value  =  it . next ( ) ;
          System . out . println ( value ) ;
       }
      
       //  使用增强for循环遍历set集合  
       for ( String   s :  set ) {
          System . out . println ( s ) ;
       }
    }

    //  遍历list集合  
    private   static   void   listTest ( )   {
       List < String >  list  =  new   ArrayList < String > ( ) ;
       list . add ( " A " ) ;
       list . add ( " B " ) ;
       list . add ( " C " ) ;
       list . add ( " D " ) ;
       list . add ( " www.javathinker.net " ) ;

       //  使用iterator遍历  
       Iterator < String >  it  =  list . iterator ( ) ;
       while   ( it . hasNext ( ) )   {
          String   value  =  it . next ( ) ;
          System . out . println ( value ) ;
       }

       //  使用传统for循环进行遍历  
       for   ( int   i  =  0 ,  size  =  list . size ( ) ;  i  <  size ;  i ++ )   {
          String   value  =  list . get ( i ) ;
          System . out . println ( value ) ;
       }

       //  使用增强for循环进行遍历  
       for   ( String   value  :  list )   {
          System . out . println ( value ) ;
       }
    }
}

以上代码运行输出结果为:

A

B

C

D

www.javathinker.net

A

B

C

D

www.javathinker.net

A

B

C

D

www.javathinker.net

JAVA

JAVASCRIPT

C++

C

JAVA

JAVASCRIPT

C++

C        

关于Map类型集合的遍历

以下实例我们使用了 HashMap 的 keySet()与entrySet()方法来遍历集合:


import java.util.Map;

import java.util.HashMap;

import java.util.HashSet;

import java.util.Iterator;

import java.util.List;

import java.util.Set;

import java.util.Map.Entry;

//增强For循环

public class Main {

public static void main(String[] args) {

      // 创建一个HashMap对象,并加入了一些键值对。

      Map<String, String> maps = new HashMap<String, String>();

      maps.put("1", "PHP");

      maps.put("2", "Java");

      maps.put("3", "C");

      maps.put("4", "C++");

      maps.put("5", "HTML");

      // 传统的遍历map集合的方法1; keySet()

      //traditionalMethod1(maps);

      // 传统的遍历map集合的方法2; entrySet()

      //traditionalMethod2(maps);

      // 使用增强For循环来遍历map集合方法1; keySet()

      //strongForMethod1(maps);

      // 使用增强For循环来遍历map集合方法2; entrySet()

      strongForMethod2(maps);

   }

   private static void strongForMethod2(Map<String, String> maps) {

      Set<Entry<String, String>> set = maps.entrySet();

      for (Entry<String, String> entry : set) {

         String key = entry.getKey();

         String value = entry.getValue();

         System.out.println(key + " : " + value);

      }

   }

  private static void strongForMethod1(Map<String, String> maps) {

      Set<String> set = maps.keySet();

      for (String s : set) {

         String key = s;

         String value = maps.get(s);

         System.out.println(key + " : " + value);

      }

   }

   // 使用entrySet()方法,获取maps集合中的每一个键值对,

   private static void traditionalMethod2(Map<String, String> maps) {

      Set<Map.Entry<String, String>> sets = maps.entrySet();

      // 取得迭代器遍历出对应的值。

      Iterator<Entry<String, String>> it = sets.iterator();

      while (it.hasNext()) {

         Map.Entry<String, String> entry = (Entry<String, String>) it.next();

         String key = entry.getKey();

         String value = entry.getValue();

         System.out.println(key + " : " + value);

      }

   }

// 使用keySet()方法,获取maps集合中的所有键,遍历键取得所对应的值。

   private static void traditionalMethod1(Map<String, String> maps) {

      Set<String> sets = maps.keySet();

      // 取得迭代器遍历出对应的值

      Iterator<String> it = sets.iterator();

      while (it.hasNext()) {

         String key = it.next();

         String value = maps.get(key);

         System.out.println(key + " : " + value);

      }

   }

}

以上代码运行输出结果为:

1 : PHP

2 : Java

3 : C

4 : C++

5 : HTML



程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-01-27 15:54:55 重新编辑]
  Java面向对象编程-->Swing组件(上)
  JavaWeb开发-->JSP技术详解(Ⅱ)
  JSP与Hibernate开发-->域对象在持久化层的四种状态
  Java网络编程-->对象的序列化与反序列化
  精通Spring-->通过Vuex进行状态管理
  Vue3开发-->Vue Router路由管理器
  [原创]汽車美容
  详细介绍float和double类型的区别
  Java小白们的练手大餐:100道编程题面试题精讲(最新推出)
  孙卫琴的视频课程的源代码下载
  NIO模式的IO多路复用底层原理
  我是如何把一个15分钟的程序优化到了10秒的
  volatile 实现原理
  Java异常堆栈信息以字符串形式输出
  Eclipse的安装配置
  java.util.logging.Logger使用详解
  JAVA常用数据结构
  常用的正则表达式汇总
  Java入门实用代码:使用 Enumeration 遍历 HashTable
  Java 入门实用代码: 数组差集
  Eclipse中怎么一键去除java项目中的信息打印语句
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。