一.对于集合

(1)普通for循环

        int[] arr = { 2, 1, 2 };
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}

(2)for循环增强

        int[] arr = { 2, 1, 2 };
for (int i : arr) {
System.out.println(i);
}
System.out.println("********************");
//二维数组
int [][]arr1={{2,1,3},{1,2,5}};
for(int []i:arr1){
for(int j:i){
System.out.println(j);
}
}

二.对于list,list是一个接口,有很多实现它的类,例如ArrayList,LinkedList,Vector。

(1)使用普通的for循环和迭代器

        List<String> list=new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//普通的遍历
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println("****************");
//使用迭代器
Iterator<String> iterator=list.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}

(2)使用for循环增强

        for(String s:list){
System.out.println(s);
}

(3)在java8中增加了一种方式,可以调用forEachRemaining方法遍历元素(标准库中的任何集合都可以),参数是lambda表达式。下面的同理。

iterator.forEachRemaining(i->System.out.println(i));

三.对于set接口,有很多实现它的类,HashSet(无序),LinkedHashSet(有序)

(1)使用迭代器。注意set没有get()方法!!!

        Set<String> set=new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
Iterator<String> iterator=set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}

(2)使用for循环增强

        for(String s:set){
System.out.println(s);
}

四.对于map接口,有很多实现它的类,HashMap,LinkedHashMap,HashTable。以键值对的形式存放

(1)使用迭代器,有两种方式

        Map<String,String> map=new HashMap<>();
map.put("1", "aa");
map.put("2", "bb");
map.put("3", "cc");
//方法1:使用迭代器,取keySet()
Iterator<String> iterator=map.keySet().iterator();
while(iterator.hasNext()){
String key=iterator.next();
String value=map.get(key);
System.out.println("key="+key+" value="+value);
}
//方法2:使用迭代器,取entrySet()
Iterator<String> iterator2=map.entrySet().iterator();
while(iterator2.hasNext()){
Map.Entry<String, String> entry=(Map.Entry<String,String>)iterator2.next();
System.out.println(entry.getKey()+" "+entry.getValue());
}

(2)增强for循环,对上面2种方法改写

        //方法1
for(String s:map.keySet()){
System.out.println(s+" "+map.get(s));
}
//方法2使用增强for,entrySet()
for(Map.Entry me:map.entrySet()){
System.out.println(me.getKey()+" "+me.getValue());
}

(3)使用forEach方法

 map.forEach((k, v) ->
System.out.println("key=" + k + ", value=" + v));

总结for循环及for循环增强遍历数组,list,set和map的更多相关文章

  1. 学JAVA第九天,for循环算质数及for遍历数组的方法。

    昨天终于收到了评论,老开心了!!! 算质数之前是我最怕的一件事,以前上学不好好学,之前学C#的时候也没好好研究, 直到今天老师逼我要用JAVA算质数,硬着头皮琢磨老半天才琢磨透,现在看来也挺简单的. ...

  2. JS遍历数组的操作(map、forEach、filter等)

    1.map的用法 定义:原数组被“映射”成对应新数组 代码示例: var users = [ {name: "张含韵", "email": "zhan ...

  3. 程序控制结构及for循环、foreach循环、迭代器

    结构化程序设计 三种基本控制结构:顺序结构.选择结构.循环结构. 在这种思想的指导下,发展出了面向过程编程方式.面向过程编程的核心是算法+数据结构.算法可以用顺序.选择.循环这三种基本控制结构来实现. ...

  4. php中利用reset,current,next和each,list来遍历数组

    1.利用for循环以及reset,current,next来遍历数组: $nums = array(11,22,33,44,55,66,77,88); for(reset($nums);current ...

  5. IT兄弟连 Java语法教程 数组 使用foreach循环遍历数组元素

    从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据 ...

  6. *使用while循环遍历数组创建索引和自增索引值

    package com.chongrui.test;/* *使用while循环遍历数组 *  *  * */public class test {    public static void main ...

  7. 浅析PHP中for与foreach两个循环结构遍历数组的区别

    遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区 ...

  8. 使用for循环遍历数组

    package review20140419;/* * 遍历数组 */public abstract class Test1 {    //程序入口    public static void mai ...

  9. sqlserver中的循环遍历(普通循环和游标循环)

    sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student

随机推荐

  1. Linux 搭建Discuz论坛

    title: Linux 搭建Discuz论坛 Welcome to Fofade's Blog! 这里是Linux 搭建论坛的一些命令记录 命令摘记: 下载文件:Discuz 安装环境:PHP Ap ...

  2. 微信小程序去除button边框

    button::after{ border: none; } 去button的背景

  3. vue中引入swiper插件

    这里我们使用npm的方式安装swiper插件. 1.npm install vue-awesome-swiper --save 2.在main.js文件中引入文件 import Vue from 'v ...

  4. 计算科学(转自wiki)

    计算科学(也称科学计算 scientific computation 或 SC)是一个快速增长的多学科领域,使用先进的计算能力来理解和解决复杂的问题. 计算科学包括三个不同的方面: 1. 开发用于解决 ...

  5. layer父页获取弹出层输入框里面的值

    主要是因为修改功能,原来页面填写数据如图 改为 其中点击填写明细弹出框 填写完毕后点击确认返回,同事这里因为她是存的多表,所以点击确认就直接保存数据了,改的这个功能原本保存是整体保存,我就不想改原来的 ...

  6. A8ERP权限管理系统

  7. 创建对象——单例(Singleton)模式

      单例(Singleton)模式:   保证一个类在系统里只能有一个对象被实例化.   如:缓存池.数据库连接池.线程池.一些应用服务实例等.   难点:在多线程环境中,保证实例的唯一性.     ...

  8. 多路开关模式的switch语句

    在实例10中,将break语句去掉之后,会将符合检验条件后的所有语句都输出.利用这个特点,可以设计多路开关模式的switch语句,例如:在平年一年12个月,1.3.5.7.8.10.12月是31天,4 ...

  9. 简述 MVC, MVP, MVVM三种模式

    Make everything as simple as possible, but not simpler - Albert Einstein* 把每件事,做简单到极致,但又不过于简单 - 阿尔伯特 ...

  10. 360 你妈妈知道你跟Python存在兼容问题吗?

    最近在用Python2.7.6版本开发的的过程中发现了一个问题 提示:UnicodeDecodeError:'ascii' codec can't decode bytes 0xb0 刚开始以为是编码 ...