java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型集合。

     许多情况需要我们遍历出集合中的元素,并做相应的处理。
     下面对各种类型的集合的遍历做一些总结,关于增强for循环,需要注意的是,使用增强for循环无法访问数组下标值,对于集合的遍历其内部采用的也是Iterator的相关方法。如果只做简单遍历读取,增强for循环确实减轻不少的代码量。
关于List与Set类型集合的遍历:
 1 import java.util.ArrayList;
2 import java.util.HashSet;
3 import java.util.Iterator;
4 import java.util.List;
5 import java.util.Set;
6
7 public class ListAndSetTest {
8
9 public static void main(String[] args) {
10 // List集合的遍历
11 listTest();
12 // Set集合的遍历
13 setTest();
14 }
15
16 private static void setTest() {
17 Set<String> set = new HashSet<String>();
18 set.add("JAVA");
19 set.add("C");
20 set.add("C++");
21 // 重复的加不进去。
22 set.add("JAVA");
23 set.add("JAVASCRIPT");
24
25 //set集合遍历方法1,使用iterator
26 Iterator<String> it = set.iterator();
27 while (it.hasNext()) {
28 String value = it.next();
29 System.out.println(value);
30 }
31
32 //set集合遍历方法2,使用增强for循环。
33 for(String s: set){
34 System.out.println(s);
35 }
36 }
37
38 // 遍历list集合
39 private static void listTest() {
40 List<String> list = new ArrayList<String>();
41 list.add("java111");
42 list.add("java222");
43 list.add("java333");
44 list.add("java444");
45 list.add("java555");
46
47 // 遍历方式1 ,使用iterator
48 Iterator<String> it = list.iterator();
49 while (it.hasNext()) {
50 String value = it.next();
51 System.out.println(value);
52 }
53
54 // 遍历方法2 , 使用传统for循环进行遍历。
55 for (int i = 0, size = list.size(); i < size; i++) {
56 String value = list.get(i);
57 System.out.println(value);
58 }
59
60 // 遍历方法3 , 使用增强for循环进行遍历。
61 for (String value : list) {
62 System.out.println(value);
63 }
64 }
65 }

关于Map类型集合的遍历,keySet()与entrySet()方法:

 1 //增强For循环
2 public class MapTest {
3
4 public static void main(String[] args) {
5 // 创建一个HashMap对象,并加入了一些键值对。
6 Map<String, String> maps = new HashMap<String, String>();
7 maps.put("111", "java111");
8 maps.put("222", "java222");
9 maps.put("333", "java333");
10 maps.put("444", "java444");
11 maps.put("555", "java555");
12
13 // 传统的遍历map集合的方法1; keySet()
14 //traditionalMethod1(maps);
15 // 传统的遍历map集合的方法2; entrySet()
16 //traditionalMethod2(maps);
17 // 使用增强For循环来遍历map集合方法1; keySet()
18 //strongForMethod1(maps);
19 // 使用增强For循环来遍历map集合方法2; entrySet()
20 strongForMethod2(maps);
21 }
22
23 private static void strongForMethod2(Map<String, String> maps) {
24 Set<Entry<String, String>> set = maps.entrySet();
25 for (Entry<String, String> entry : set) {
26 String key = entry.getKey();
27 String value = entry.getValue();
28 System.out.println(key + " : " + value);
29 }
30 }
31
32 private static void strongForMethod1(Map<String, String> maps) {
33 Set<String> set = maps.keySet();
34 for (String s : set) {
35 String key = s;
36 String value = maps.get(s);
37 System.out.println(key + " : " + value);
38 }
39 }
40
41 // 使用entrySet()方法,获取maps集合中的每一个键值对,
42 private static void traditionalMethod2(Map<String, String> maps) {
43 Set<Map.Entry<String, String>> sets = maps.entrySet();
44 // 取得迭代器遍历出对应的值。
45 Iterator<Entry<String, String>> it = sets.iterator();
46 while (it.hasNext()) {
47 Map.Entry<String, String> entry = (Entry<String, String>) it.next();
48 String key = entry.getKey();
49 String value = entry.getValue();
50 System.out.println(key + " : " + value);
51 }
52 }
53
54 // 使用keySet()方法,获取maps集合中的所有键,遍历键取得所对应的值。
55 private static void traditionalMethod1(Map<String, String> maps) {
56 Set<String> sets = maps.keySet();
57 // 取得迭代器遍历出对应的值。
58 Iterator<String> it = sets.iterator();
59 while (it.hasNext()) {
60 String key = it.next();
61 String value = maps.get(key);
62 System.out.println(key + " : " + value);
63 }
64 }
65 }

java关于集合的遍历与增强for循环(foreach)的使用的更多相关文章

  1. “全栈2019”Java第三十二章:增强for循环Foreach语法

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. Java自学-集合框架 遍历

    遍历ArrayList的三种方法 步骤 1 : 用for循环遍历 通过前面的学习,知道了可以用size()和get()分别得到大小,和获取指定位置的元素,结合for循环就可以遍历出ArrayList的 ...

  3. Java之集合的遍历与迭代器

    集合的遍历 依次获取集合中的每一个元素 将集合转换成数组,遍历数组 //取出所有的学号, 迭代之后显示学号为1004-1009 Object[] c=map.keySet().toArray();// ...

  4. 集合、迭代器、增强for循环、泛型

    1集合 集合是java中提供的一种容器,可以用来存储多个数据. 数组的长度是固定的.集合的长度是可变的.集合中存储的元素必须是引用类型数据. 1.1ArrayList集合存储元素(复习) 例: pub ...

  5. Java中的增强 for 循环 foreach

    foreach 是 Java 中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理.能够提高性能,并减少代码出错的几率.在 J ...

  6. Java基础系列(24)- 增强for循环

    增强for循环 这里我们先只是见一面,做个了解,之后数组部分会重点使用 Java5引入了一种主要用于数组或集合的增强型for循环 Java增强for循环语法格式如下 for(声明语句:表达式){ // ...

  7. Java SE 枚举,注解,增强for循环

    Java SE 进阶 1.Enum 枚举对象名通常使用全部大写,常量的命名规范 构造器私有化 本类内部创建一组对象 对外暴露对象(通过为对象添加 public final static 修饰符) 可以 ...

  8. 增强for循环 -- foreach循环

    1  作用 简化迭代器的书写格式.(注意:foreach循环的底层还是使用了迭代器遍历.) 2  适用范围 如果是实现了Iterable接口的对象或者是数组对象都可以使用foreach循环. 3  格 ...

  9. 【Java】 二叉树的遍历(递归与循环+层序遍历)

    在[Java] 大话数据结构(9) 树(二叉树.线索二叉树)一文中,已经实现了采用递归方法的前.中.后序遍历,本文补充了采用循环的实现方法.以及层序遍历并进行了一个总结. 递归实现 /* * 前序遍历 ...

随机推荐

  1. Jmeter 接口测试知识梳理——持续集成篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter + Ant ...

  2. 猫眼电影爬取(二):requests+beautifulsoup,并将数据存储到mysql数据库

    上一篇通过requests+正则爬取了猫眼电影榜单,这次通过requests+beautifulsoup再爬取一次(其实这个网站更适合使用beautifulsoup库爬取) 1.先分析网页源码 可以看 ...

  3. Feign二:复写Feign的默认配置

    Feign二:复写Feign的默认配置 1.在启动文件加入feign注解:@EnableFeignClients FeignApp.java import org.springframework.bo ...

  4. centos7: php7.2.9安装配置

    下载php http://cn2.php.net/distributions/php-7.2.9.tar.gz 解压到: /usr/local/src/ 接下来进行参数配置,配置前如果没有libxml ...

  5. Confluence 6 为边栏添加自定义内容

    你可以使用 wiki 标记和自定义内容来对边栏进行更进一步的自定义. 希望添加自定义内容到你的边栏中: 进入空间后,然后从边栏的底部选择 空间工具(Space tools) > 外观和感觉(Lo ...

  6. Ftp服务端安装-Linux环境

    目的 为什么要搭建FTP服务器,进入maven仓库下载Jar包时点击相应的链接进去会看到目录结构,这个就是ftp站点.可以随意的下载. 环境 Linux系统为CentOS6.5 安装步骤 查询是否已安 ...

  7. 自定义Exception异常

    自定义异常构建 首先写一个自定义异常,继承Exception,代码如下 public class NoMappingParamString extends Exception { /*无参构造函数*/ ...

  8. Problem F. Grab The Tree HDU - 6324

    题意:给出一棵n个节点的树,每个节点有一个权值,Q和T玩游戏,Q先选一些不相邻的节点,T选剩下的节点,每个人的分数是所选节点的权值的异或和,权值大的胜出,问胜出的是谁. 题解: 话说,这题后面的边跟解 ...

  9. Vasya And The Mushrooms CodeForces - 1016C (前缀和模拟)

    大意: 给定2*n的矩阵, 每个格子有权值, 走到一个格子的贡献为之前走的步数*权值, 每个格子只能走一次, 求走完所有格子最大贡献. 沙茶模拟打了一个小时总算打出来了 #include <io ...

  10. php网站多语言

    1.获取语言的函数: $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言.如果取前5位,可能出现en ...